点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我的要求是在ABAP中使用REST服务。 我编写了以下程序,但不是获取JSON结果,而是获取页面的HTML。 有人可以让我知道我要去哪里了。
lv_url =
cl_http_client => create_by_url(
导出
url = lv_url
proxy_host =' proxy.khof.com '
proxy_service ='8080'
导入
客户端= lo_http_client
例外情况
arguments_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4)。
如果sy-subrc <>0。
返回。
ENDIF。
* HTTP基本认证
lo_http_client-> propertytype_logon_popup = lo_http_client-> co_disabled。
l_username = <用户名>。
l_password =''。
呼叫方法lo_http_client-> authenticate < br>导出
用户名= l_用户名
密码= l_密码。
*创建REST客户端实例
创建对象lo_rest_client
导出
io_http_client = lo_http_client。
*设置HTTP版本
lo_http_client-> request-> set_version(if_http_request => co_protocol_version_1_0)。
如果lo_http_client IS BOUND和lo_rest_client IS BOUND。
DATA(id)='securityUserName =
CONCATENATE lv_url'?' id INTO lv_url。
*设置URI(如果有的话)
cl_http_utility => set_request_uri(
EXPORTING
request = lo_http_client-> request" HTTP Framework(iHTTP)HTTP Request
uri = lv_url" URI 字符串(以/path?query-string形式)
)。
*设置请求标头(如果有)
令牌=
调用方法lo_rest_client -> if_rest_client〜set_request_header
导出
iv_name ='auth-token'
iv_value =令牌。
* HTTP GET
lo_rest_client-> if_rest_client〜get()。
* HTTP响应
lo_response = lo_rest_client-> if_rest_client〜get_response_entity()。
* HTTP返回状态
DATA(http_status)= lo_response-> get_header_field('〜status_code')。
< br> * HTTP JSON返回字符串
DATA(json_response)= lo_response-> get_string_data()。
*用于将JSON转换为ABAP结构的类
DATA lr_json_deserializer TYPE REF到cl_trex_json_deserializer。
创建对象 lr_json_deserializer。
* lr_json_deserializer-> deseri alize(EXPORTING json = json_response IMPORTING abap = abap_response)。
ENDIF。
第一个问题:您得到2xx结果代码吗?
我遇到的情况是结果是HTML页面,因为我得到了404 :)
第二个问题:您正在调用的服务是否具有选择返回有效载荷的参数?
感谢您的回复。 HTTP状态为200。
该服务具有两个参数securityUserName和domain,当我们在浏览器上运行该服务时,它们会显示为输入字段。
一周热门 更多>