Steaphann
Steaphann

Reputation: 2777

Post an image with HTTPClient but also some parameters on windows phone

I want to do a MultipartFormDataContent request. But I also want to pass a lot of params with it. When I'm just doing a post I do this:

 public async Task<Webservice> inviteMembrs(List<KeyValuePair<string, string>> values)
        {
            String strUrl = String.Format("http://*****.com/nl/webservice/abc123/members/invite");
            var http = new HttpClient();
            var request = new HttpRequestMessage(HttpMethod.Post, new Uri(strUrl));
            request.Content = new HttpFormUrlEncodedContent(values);
            var result = await http.SendRequestAsync(request);
            var data = new Webservice { Status = result.StatusCode };
            if (result.StatusCode == Windows.Web.Http.HttpStatusCode.Ok && result.Content != null)
            {
                data.Data = await result.Content.ReadAsStringAsync();
                Debug.WriteLine(data.Data);
            }
            return data;
        }

This works perfect. But now I also want to pass an image with it. I found a lot of examples but always without extra params. Anyone can help?

Upvotes: 1

Views: 1141

Answers (1)

Ku6opr
Ku6opr

Reputation: 8126

Try the following code:

HttpClient httpClient = new HttpClient();

MultipartFormDataContent content = new MultipartFormDataContent();

content.Add(new StringContent(parameter), "name");

content.Add(new StreamContent(stream), "param", "filename");

HttpResponseMessage httpResponseMessage = await httpClient.PostAsync(address, content);

Upvotes: 2

Related Questions