1

I am implementing a Xamarin Form mobile app to allow post photo to Drupal using service module node resources. http://xxxx.com/{endpoint}/node/4/attach_file

i able to post from POSTMAN with enter image description here

I tried to implement with c# HttpClient but keep getting response like "401 :Missing required argument field_name"

Please help on my code:

var httpClient = new HttpClient(new NativeMessageHandler());
httpClient.Timeout.Add(new TimeSpan(0, 0, 30));
httpClient.BaseAddress = new Uri(BaseAddress);

var content = new MultipartFormDataContent();                 
var streamContent = new StreamContent(g_media.GetStream());            
streamContent.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse("form-data");
streamContent.Headers.ContentDisposition.Parameters.Add(new NameValueHeaderValue("field_name", "field_receipt_image"));       
content.Add(streamContent,"files[file]");               

var response = await httpClient.PostAsync("node/4/attach_file", content);
response.EnsureSuccessStatusCode();
ifloop
  • 8,079
  • 2
  • 26
  • 35
Lee Yeong Guang
  • 146
  • 1
  • 6

1 Answers1

0

I had the same issue and used RestSharp to resolve it. Here is the code I used to upload a file to Drupal:

    var restClient = new RestClient("http:XXXXXX/attach_file");
    var request = new RestRequest(Method.POST);
    request.AddFile("files[file]", fileName);
    request.AddParameter("field_name", field);
    IRestResponse response = restClient.Execute(request);
Jordan
  • 1