<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic post CL_HTTP_CLIENT multipart/form-data error in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/post-cl-http-client-multipart-form-data-error/m-p/749712#M36015</link>
    <description>&lt;P&gt;hi all,&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;i am sending rest api post service.Post service is get the multipart/form-data.i just add 1 file.extension of file is .card.&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;How can i solve this problem?Can you help me please?&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;But get this error :&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/235320-c1.png" /&gt;&lt;BR /&gt;it is rest api result manuel :&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/235321-c2.png" /&gt;&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;it is my abap code :&lt;/P&gt; 
  &lt;PRE&gt;&lt;CODE&gt; 
CONCATENATE lv_access_token lv_connect_sid lv_userid INTO lv_value SEPARATED BY space.

  FREE lo_http_client.

  CALL METHOD cl_http_client=&amp;gt;create_by_url

    EXPORTING

      url                = lv_url

    IMPORTING

      client             = lo_http_client

    EXCEPTIONS

      argument_not_found = 1

      plugin_not_active  = 2

      internal_error     = 3

      OTHERS             = 4.



  IF sy-subrc &amp;lt;&amp;gt; 0.

    "error handling

  ENDIF.

  lo_http_client-&amp;gt;request-&amp;gt;set_method('POST').

  lo_http_client-&amp;gt;request-&amp;gt;set_content_type( content_type = 'multipart/form-data'  ).

  lo_http_client-&amp;gt;request-&amp;gt;set_header_field( name = 'Accept' value = 'application/json' ).

  lo_http_client-&amp;gt;request-&amp;gt;set_header_field( name = 'cookie' value = lv_value ).

  lo_http_client-&amp;gt;propertytype_logon_popup = lo_http_client-&amp;gt;co_disabled.



  DATA:part TYPE REF TO if_http_entity.



  part = lo_http_client-&amp;gt;request-&amp;gt;add_multipart( ).

  part-&amp;gt;set_content_type( content_type ='application/octet-stream' ).

  part-&amp;gt;set_header_field( name  = if_http_header_fields=&amp;gt;content_disposition

                          value = 'form-data;name="card";filename="admin2.card"' ).



  DATA:filename TYPE string.

  filename = '/tmp/admin2.card'.



  DATA:lv_raw TYPE xstring.

  OPEN DATASET filename FOR INPUT  IN LEGACY BINARY MODE CODE PAGE '1100'.

  IF sy-subrc = 0.

    DO.

      CLEAR lv_raw.

      READ DATASET filename INTO lv_raw.

      IF sy-subrc EQ 0.

        CALL METHOD part-&amp;gt;append_data

          EXPORTING

            data = lv_raw.

      ELSE.

        EXIT.

      ENDIF.

    ENDDO.

  ENDIF.

  CLOSE DATASET filename .



  CALL METHOD lo_http_client-&amp;gt;send

    EXPORTING

      timeout                    = 200

    EXCEPTIONS

      http_communication_failure = 1

      http_invalid_state         = 2

      http_processing_failed     = 3

      OTHERS                     = 4.

  IF sy-subrc = 0.

    CALL METHOD lo_http_client-&amp;gt;receive

      EXCEPTIONS

        http_communication_failure = 1

        http_invalid_state         = 2

        http_processing_failed     = 3

        OTHERS                     = 5.

  ENDIF.



  CALL METHOD lo_http_client-&amp;gt;response-&amp;gt;get_status

    IMPORTING

      code   = lv_http_code

      reason = lv_http_reason.

  IF lv_http_code = '204'.



  ENDIF.


it is my fiori code : it is work fine.
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": "application/octet-stream",
				"lastModified": Date.now()
			});


			xhr.open("POST", "url:3000/api/wallet/import");
			xhr.onreadystatechange = function() {
				if (xhr.readyState == 4 &amp;amp;&amp;amp; xhr.status == 200) {
					alert(JSON.parse(xhr.responseText));
				}
			};
			fd.append("card", file);  
			xhr.withCredentials = true;		 
			xhr.send(fd);


		}

&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 12 Oct 2018 07:28:28 GMT</pubDate>
    <dc:creator>abityildiz</dc:creator>
    <dc:date>2018-10-12T07:28:28Z</dc:date>
    <item>
      <title>post CL_HTTP_CLIENT multipart/form-data error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/post-cl-http-client-multipart-form-data-error/m-p/749712#M36015</link>
      <description>&lt;P&gt;hi all,&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;i am sending rest api post service.Post service is get the multipart/form-data.i just add 1 file.extension of file is .card.&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;How can i solve this problem?Can you help me please?&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;But get this error :&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/235320-c1.png" /&gt;&lt;BR /&gt;it is rest api result manuel :&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/235321-c2.png" /&gt;&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;it is my abap code :&lt;/P&gt; 
  &lt;PRE&gt;&lt;CODE&gt; 
CONCATENATE lv_access_token lv_connect_sid lv_userid INTO lv_value SEPARATED BY space.

  FREE lo_http_client.

  CALL METHOD cl_http_client=&amp;gt;create_by_url

    EXPORTING

      url                = lv_url

    IMPORTING

      client             = lo_http_client

    EXCEPTIONS

      argument_not_found = 1

      plugin_not_active  = 2

      internal_error     = 3

      OTHERS             = 4.



  IF sy-subrc &amp;lt;&amp;gt; 0.

    "error handling

  ENDIF.

  lo_http_client-&amp;gt;request-&amp;gt;set_method('POST').

  lo_http_client-&amp;gt;request-&amp;gt;set_content_type( content_type = 'multipart/form-data'  ).

  lo_http_client-&amp;gt;request-&amp;gt;set_header_field( name = 'Accept' value = 'application/json' ).

  lo_http_client-&amp;gt;request-&amp;gt;set_header_field( name = 'cookie' value = lv_value ).

  lo_http_client-&amp;gt;propertytype_logon_popup = lo_http_client-&amp;gt;co_disabled.



  DATA:part TYPE REF TO if_http_entity.



  part = lo_http_client-&amp;gt;request-&amp;gt;add_multipart( ).

  part-&amp;gt;set_content_type( content_type ='application/octet-stream' ).

  part-&amp;gt;set_header_field( name  = if_http_header_fields=&amp;gt;content_disposition

                          value = 'form-data;name="card";filename="admin2.card"' ).



  DATA:filename TYPE string.

  filename = '/tmp/admin2.card'.



  DATA:lv_raw TYPE xstring.

  OPEN DATASET filename FOR INPUT  IN LEGACY BINARY MODE CODE PAGE '1100'.

  IF sy-subrc = 0.

    DO.

      CLEAR lv_raw.

      READ DATASET filename INTO lv_raw.

      IF sy-subrc EQ 0.

        CALL METHOD part-&amp;gt;append_data

          EXPORTING

            data = lv_raw.

      ELSE.

        EXIT.

      ENDIF.

    ENDDO.

  ENDIF.

  CLOSE DATASET filename .



  CALL METHOD lo_http_client-&amp;gt;send

    EXPORTING

      timeout                    = 200

    EXCEPTIONS

      http_communication_failure = 1

      http_invalid_state         = 2

      http_processing_failed     = 3

      OTHERS                     = 4.

  IF sy-subrc = 0.

    CALL METHOD lo_http_client-&amp;gt;receive

      EXCEPTIONS

        http_communication_failure = 1

        http_invalid_state         = 2

        http_processing_failed     = 3

        OTHERS                     = 5.

  ENDIF.



  CALL METHOD lo_http_client-&amp;gt;response-&amp;gt;get_status

    IMPORTING

      code   = lv_http_code

      reason = lv_http_reason.

  IF lv_http_code = '204'.



  ENDIF.


it is my fiori code : it is work fine.
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": "application/octet-stream",
				"lastModified": Date.now()
			});


			xhr.open("POST", "url:3000/api/wallet/import");
			xhr.onreadystatechange = function() {
				if (xhr.readyState == 4 &amp;amp;&amp;amp; xhr.status == 200) {
					alert(JSON.parse(xhr.responseText));
				}
			};
			fd.append("card", file);  
			xhr.withCredentials = true;		 
			xhr.send(fd);


		}

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 12 Oct 2018 07:28:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/post-cl-http-client-multipart-form-data-error/m-p/749712#M36015</guid>
      <dc:creator>abityildiz</dc:creator>
      <dc:date>2018-10-12T07:28:28Z</dc:date>
    </item>
    <item>
      <title>Re: post CL_HTTP_CLIENT multipart/form-data error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/post-cl-http-client-multipart-form-data-error/m-p/749713#M36016</link>
      <description>&lt;P&gt;i solved.&lt;/P&gt;&lt;P&gt;i added new field in the header fields.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; lo_http_client-&amp;gt;request-&amp;gt;set_header_field( name = 'X-Access-Token' value = lv_token ).&lt;/P&gt;</description>
      <pubDate>Fri, 12 Oct 2018 11:59:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/post-cl-http-client-multipart-form-data-error/m-p/749713#M36016</guid>
      <dc:creator>abityildiz</dc:creator>
      <dc:date>2018-10-12T11:59:22Z</dc:date>
    </item>
  </channel>
</rss>

