点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我必须发送带有标头的http请求,该标头包含换行符(具体来说为
如果我创建一个字符串(iv_mystring_with_cr_lf)并包含`cl_abap_char_utilities => cr_lf`并将该字符串作为值传递给`lo_http_client-> request-> set_header_field(name ='HeaderName'value = iv_mystring_with_cr_lf)',我会收到。 一个http_communication_failure错误,我们将调用lr_http_client-> send()。 如果我删除cr_lf字符,则一切正常,除了我的标题错误...
我错过了什么吗? 有什么解决方法吗? 不幸的是,我必须使用
这是一个转储的最小示例。
数据: lo_http_client类型参考if_http_client, lv_somestring类型的字符串, lv_url类型的字符串。 lv_url ='http://example.org'。 cl_http_client => create_by_url( 出口 网址= lv_url ssl_id ='DFAULT' 输入 客户= lo_http_client)。 lv_somestring ='测试'。 将lv_somestring cl_abap_char_utilities => cr_lf lv_somestring合并为lv_somestring。 lo_http_client-> request-> set_header_field(name ='someHeader'value = lv_somestring)。 lo_http_client-> send()。 "崩溃。
从我的角度来看,HTTP方法并不聪明,它会检查CRLF的标题字段以添加空格或水平制表符,如何决定哪个分隔符是最好的。
如Sandra所述,应修改串联以满足HTTP 1.1要求。
此功能仅适用于HTTP 1.1 ...,但是SAP的HTTP类默认使用1.0,因此您无法更改它。 (对德文截图表示敬意)
致谢
Holger
关于HTTP版本1.0和1.1的注释,您是否尝试过设置以下版本:
按照您的建议更新HTTP协议版本不能解决问题。
我想我必须联系SAP支持。
一周热门 更多>