点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我正在发送剩余的api后期服务。后期服务是获取multipart/form-data。我只需添加1个文件。文件扩展名是.card。
我该如何解决这个问题?您能帮我吗?
但是出现此错误:
这是rest api结果手册:
这是我的abap代码:
CONCATENATE lv_access_token lv_connect_sid lv_userid INTO lv_value由空格分隔。 免费lo_http_client。 呼叫方法cl_http_client => create_by_url 出口 网址= lv_url 输入 客户端= lo_http_client 例外情况 arguments_not_found = 1 plugin_not_active = 2 internal_error = 3 其他= 4。 如果sy-subrc <> 0。 "错误处理 万一。 lo_http_client-> request-> set_method('POST')。 lo_http_client-> request-> set_content_type(content_type ='multipart/form-data')。 lo_http_client-> request-> set_header_field(name ='Accept'value ='application/json')。 lo_http_client-> request-> set_header_field(name ='cookie'value = lv_value)。 lo_http_client-> propertytype_logon_popup = lo_http_client-> co_disabled。 数据:部分类型参考if_http_entity。 部分= lo_http_client-> request-> add_multipart()。 part-> set_content_type(content_type ='application/octet-stream')。 part-> set_header_field(name = if_http_header_fields => content_disposition value ='form-data; name =" card"; filename =" admin2.card"')。 DATA:文件名TYPE字符串。 文件名='/tmp/admin2.card'。 DATA:lv_raw TYPE xstring。 用于在传统二进制模式代码页" 1100"中输入的OPEN DATASET文件名。 如果sy-subrc = 0。 做。 清除lv_raw。 读取数据集文件名INTO lv_raw。 如果sy-subrc EQ 0。 呼叫方法part-> append_data 出口 数据= lv_raw。 其他。 出口。 万一。 ENDDO。 万一。 CLOSE DATASET文件名。 呼叫方法lo_http_client->发送 出口 超时= 200 例外情况 http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 其他= 4。 如果sy-subrc = 0。 调用方法lo_http_client-> receive 例外情况 http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 其他= 5。 万一。 调用方法lo_http_client-> response-> get_status 输入 代码= lv_http_code 原因= lv_http_reason。 如果lv_http_code ='204'。 万一。 这是我的fiori代码:可以正常工作。 onCardImport:function(oEvent){ var fU = this.getView()。byId(" fileUploader"); var domRef = fU.getFocusDomRef(); var file = domRef.files [0]; var xhr = new XMLHttpRequest(); var fd = new FormData(); var file = new File([file],file.name,{ " type":"应用程序/八位字节流", " lastModified":Date.now() }); xhr.open(" POST"," url:3000/api/wallet/import"); xhr.onreadystatechange = function(){ 如果(xhr.readyState == 4 && xhr.status == 200){ alert(JSON.parse(xhr.responseText)); } }; fd.append(" card",file); xhr.withCredentials = true; xhr.send(fd); }
(42.5 kB)
我解决了。
我在标题字段中添加了新字段。
lo_http_client-> request-> set_header_field(name ='X-Access-Token'value = lv_token)。
一周热门 更多>