点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,我怎么知道要传递给post方法的字符串内容? Rest API是ABAP系统中的ODATA,我正尝试从ABAP程序的另一个SAP系统中调用它。 我传递的是与我从GET方法收到的内容完全相同的内容,因为我知道它应该可以工作,因此我以这种方式编写了API。 我在lv_reponse中的以下代码中收到415错误。 我应该如何填充wf_string1在这里调用post方法? lo_rest_client-> if_rest_resource〜post(lo_request)。
SPAN { 字体家族:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 { 字体样式:斜体; 颜色:#808080; } .L0S32 { 颜色:#3399FF; } .L0S33 { 颜色:#4DA619; } .L0S52 { 颜色:#0000FF; } .L0S55 { 颜色:#800080; } .L0S70 { 颜色:#808080; } 报告yrest_zgw_po_post_api_token2。 数据:wf_user类型字符串。 数据:wf_password类型字符串。 数据:rlength类型i, txlen类型的字符串。 数据:lo_http_client类型ref到if_http_client。 数据:wf_string类型string。 数据:wf_string1类型string。 数据:wf_proxy类型字符串, wf_port类型字符串, lv_url类型的字符串, lv_token类型字符串。 数据:lo_rest_client类型为cl_rest_http_client的引用, lo_response类型参考到if_rest_entity, lv_http_status类型i。 选择开始。 lv_url ='http://xxxxxxxx.xx.xxxxx.com:8000/sap/opu/odata/sap/ZGW_PO_SRV/zekkoekpoSet'。 cl_http_client => create_by_url( 出口 网址= lv_url 输入 客户端= lo_http_client 例外情况 arguments_not_found = 1 plugin_not_active = 2 internal_error = 3 其他= 4)。 *-其余客户端获取令牌 创建对象lo_rest_client导出io_http_client = lo_http_client。 lo_rest_client-> if_rest_client〜set_request_header(导出iv_name ='X-CSRF-Token'iv_value ='Fetch')。 lo_http_client-> propertytype_accept_cookie = if_http_client => co_enabled。 lo_http_client-> propertytype_logon_popup = lo_http_client-> co_disabled。 调用方法lo_http_client-> send 例外情况 http_communication_failure = 1 http_invalid_state = 2。 调用方法lo_http_client-> receive 例外情况 http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3。 如果sy-subrc <> 0。 消息e000(oo)带有"处理失败!"。 万一。 wf_string1 = lo_http_client-> response-> get_cdata()。 *-其余客户端获取令牌 lo_rest_client-> if_rest_client〜get(其他= 1除外)。 lo_response = lo_rest_client-> if_rest_client〜get_response_entity()。 lv_http_status = lo_response-> get_header_field('〜status_code')。 lv_token = lo_response-> get_header_field('X-CSRF-Token')。 * -------调用PUt方法,使用令牌。 代码2。 *免费:lo_http_client,lo_rest_client。 数据lo_request类型参考if_rest_entity。 数据lv_response类型字符串。 * cl_http_client => create_by_url( *导出网址= lv_url *导入客户端= lo_http_client *例外= 1)。 * lo_http_client-> request-> set_content_type('application/json')。 *创建对象lo_rest_client导出io_http_client = lo_http_client。 lo_request = lo_rest_client-> if_rest_client〜create_request_entity()。 lo_request-> set_header_field(iv_name ='X-CSRF-Token'iv_value = lv_token)。 lo_request-> set_header_field(iv_name ='X-Requested-With'iv_value ='X')。 * lo_request-> set_content_type(iv_media_type = if_rest_media_type => gc_appl_json)。 lo_request-> set_string_data(wf_string1)。 lo_rest_client-> if_rest_resource〜post(lo_request)。 lo_response = lo_rest_client-> if_rest_client〜get_response_entity()。 lv_http_status = lo_response-> get_header_field('〜status_code')。 lv_response = lo_response-> get_string_data()。
Jose Jaimes,你好
我简单地将有效负载串联在一起。 我首先使其在GW客户端中工作,然后从GW客户端复制了有效负载的结构。 请让我知道您是否有疑问。
串联'{" d":{" __metadata":{" id":" http ://xxxxxxxx.xx.xxxxxx.COM :8000/sap/opu/odata/sap/ZXX_PO_SRV/zekkoekpoSet(Ebeln =''4500097814'',Ebelp =''00030'')",'
'" uri":" http://xxxxxxxx.xx.xxxxxx.COM :8000/sap/opu/odata/sap/ZXX_PO_SRV/zekkoekpoSet(Ebeln =''4500097814'',Ebelp =''00030'')"," type":" ZXX_PO_SRV.zekkoekpo"},'
'" Ebeln":" 4500097814"," Ebelp":" 00030"," Bukrs":" 1111"," Bsart":" AN"," Matnr":" B-4000001"," Werks":" XXXX"," Meins":" EA"," Menge":" 0.000"," Loekz":""}}'
放入lv_gtwy_payload。
请提供任何帮助。 谢谢。
您好 Bhakti joshi
我想写信给我我有解决方法,但是我有同样的问题。
您能解决这个问题吗? 知道这一点真是太棒了。
此致
JoséJaimes
Bhakti,
我有相同的要求。 但就我而言,结果始终是200。
您能提供适合您的最终代码吗?
谢谢
信德省
一周热门 更多>