【问题标题】:WP8 upload image on server using multipart/form-data, getting errorWP8 使用 multipart/form-data 在服务器上上传图像,出现错误
【发布时间】:2014-01-13 18:22:39
【问题描述】:

以下代码尝试使用 multipart/form-data 将图像上传到服务器:

public async void PostRequest(Stream photoStream, string lomail, string fileName)
{
    try
    {
        using (HttpClient client = new HttpClient())
        {
            client.Timeout = TimeSpan.FromMinutes(10);
            photoStream.Position = 0;
            using (MultipartFormDataContent content = new MultipartFormDataContent())
            {
                content.Add(new StringContent(lomail), "lomail");
                content.Add(new StreamContent(photoStream), "photo", fileName);

                Dispatcher.BeginInvoke(() =>
                {
                    MessageBox.Show("post");
                });

                HttpResponseMessage response = await client.PostAsync(LoUrl, content);
                Dispatcher.BeginInvoke(() =>
                {
                     MessageBox.Show(response.ToString());
                });

                Dispatcher.BeginInvoke(() =>
                {
                    MessageBox.Show("finish");
                });
            }
        }
    }
    catch (Exception e)
    {
        MessageBox.Show("post request: " + e.Message);
    }
}

但是有 HTTP 错误:(状态码 404,Http.StramContent,Header:Content-length=0)

如何正确执行?

【问题讨论】:

  • 您能否解释一下 a) 您正在尝试做什么,b) 您尝试过什么,以及 c) 您面临什么问题?你实际上什么都没问:)
  • 对不起!这是我关于stackowerflow的第一个问题。我正在尝试将图像上传到服务器,但状态码 404 出现错误。
  • 没问题,欢迎来到 StackOverflow。您确定发布到正确的 URL 吗?服务器是否正常工作,即您可以手动上传到同一个 URL 吗?
  • 我认为 URL 是正确的。 "lomobil.com/handler/upload"

标签: windows-phone-8 multipartform-data dotnet-httpclient


【解决方案1】:

我找到了解决办法。

public async void PostRequest(Stream photoStream, string lomail, string fileName)
       {
           try
           {
               using (HttpClient client = new HttpClient())
               {
                   client.Timeout = TimeSpan.FromMinutes(10);
                   photoStream.Position = 0;
                   using (MultipartFormDataContent content = new MultipartFormDataContent())
                   {
                       content.Add(new StringContent(lomail), "lomail");
                       content.Add(new StreamContent(photoStream), "photo", fileName);
                       //var imageContent = new ByteArrayContent(ImageData);
                       //imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg");

                       //content.Add(imageContent, "photo", "image.jpg");
                       Dispatcher.BeginInvoke(() =>
                       {
                           MessageBox.Show("post");
                       });

                       HttpResponseMessage response = await client.PostAsync(LoUrl, content);
                       Dispatcher.BeginInvoke(() =>
                       {
                            MessageBox.Show(response.ToString());
                       });

                       Dispatcher.BeginInvoke(() =>
                       {
                           MessageBox.Show("finish");
                       });
                   }
               }
            }
            catch (Exception e)
            {
                MessageBox.Show("post request: " + e.Message);
            }
        } 

【讨论】:

  • 我的 api 返回 json,如何从中获取 json 响应。提前谢谢
  • 这里不适合问这个问题。首先,您应该考虑创建一个新问题,但似乎答案已经在某个地方给出,所以看看 bing(是的!)或 google。
  • @koch_kir 您可能会接受这个答案(答案左上角的复选标记),这是 Stack Overflow 标记问题“已解决”的方式。如果您知道自己的答案有效并且没有其他人提供更好的答案,那么接受自己的答案是很好的。
猜你喜欢
  • 2015-06-01
  • 1970-01-01
  • 2019-06-10
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
  • 2019-01-06
  • 2015-10-11
  • 1970-01-01
相关资源
最近更新 更多