点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我需要调用Odata服务,并使用post方法将数据更新到Custom表中。
我使用了以下代码,但结果状态始终为200。 我已调试,但未达到创建实体方法。 请让我知道丢失了什么或出了什么问题。
数据:lo_http_client类型参考if_http_client,
lo_rest_client类型参考cl_rest_http_client,
lv_url类型字符串,
http_status类型字符串,
lv_body类型字符串。
数据:lo_json类型参考到cl_clb_parse_json,
lo_response类型参考到if_rest_entity,
lo_request类型参考到if_rest_entity,
lo_sql类型参考到cx_sy_open_sql_db,
状态类型字符串,
原因类型 br>响应TYPE字符串,
content_length TYPE字符串,
位置TYPE字符串,
content_type TYPE字符串,
lv_status TYPE i。
lv_url ='< rel =" nofollow" hraf=" http://XXXXXXXXX.solutions.glbsnet.com" target =" _blank"> http://XXXXXXXXX.solutions.glbsnet.com :XXXX/sap/opu/odata/sap/ZTEST_PO_DET_SRV/UPD_EXT_DATASet('')'。
*
cl_http_client => create_by_url(
EXPORTING
url = lv_url
IMPORTING
client = lo_http_client
EXCEPTIONS
arguments_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4)。
*如果您 e使用cl_http_client => create_by_url使用此代码抑制并传递您的
创建对象lo_rest_client
导出
io_http_client = lo_http_client。
lo_http_client-> request-> set_version(if_http_request => co_protocol_version__1
如果lo_http_client被绑定。
lv_body ='{" Docnum":" 193345678"," ReturnMsg":"更新成功"," Ebeln":" 11212466"," Lifnr":" 100010"}'。
*设置有效负载或主体(JSON或XML)
lo_request = lo_rest_client-> if_rest_client〜create_request_entity()。
lo_request-> set_content_type (iv_media_type = if_rest_media_type => gc_appl_json)。
lo_request-> set_string_data(lv_body)。 调用方法lo_rest_client-> if_rest_client〜set_request_header
*导出
* iv_name ='auth-token'
* iv_value ='VQ_caQ5WsE2uj7dZnk4aHQ =='。 "设置标题。
* POST
lo_rest_client-> if_rest_resource〜post(lo_request)。
*收集响应
lo_response = lo_rest_client-> if_rest_client〜get_response_entity()。
http_status = lv_status = lo_response-> get_header_field('〜status_code')。
原因= lo_response-> get_header_field('〜status_reason')。
content_length = lo_response-> get_header_field('content-length')。
location = lo_response-> get_header_field('location')。
content_type = lo_response-> get_header_field('content-type')。
response = lo_response-> get_string_data()。
我已经参考了以下链接
https://answers.sap。 com/questions/750105/calling-post-rest-api-in-abap.html
https://blogs.sap.com/2014/11/09/calling-an-external-restful-service-from-abap-http-method-post /
嗨,
您没有调用http_client的send和receive方法。 第一个链接( https://answers.sap .com/questions/750105/calling-post-rest-api-in-abap.html )。
最诚挚的问候,
Geert-Jan Klaps
嗨
响应码200成功
您正在面对什么问题?
嗨,吉尔特, >
感谢您的回答。
语句lo_rest_client-> if_rest_resource〜post(lo_request)实际上在其中调用了send和receive,但是我显式地调用了send和receive并且仍然是相同的输出。
是否有问题,因为我正在调用Odata服务来发布数据?
一周热门 更多>