【问题标题】:How to send MultipartForm using POST method in (Windows Phone 8.1) C#如何在(Windows Phone 8.1)C#中使用POST方法发送MultipartForm
【发布时间】:2014-09-04 20:54:12
【问题描述】:

谁能解释我如何使用不同类型的数据向 Web 上的 URL 发出 POST 请求,在我的情况下,我有一个图像和两个字符串类型的值要发送到 PHP 中的服务器。
在这里我已经做了什么

var stream = await file.OpenStreamForReadAsync();
var streamcontent = new StreamContent(stream);
streamcontent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
    Name = "photo",
    FileName = file.Name
};
streamcontent.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
MultipartFormDataContent multipart = new MultipartFormDataContent();
multipart.Add(streamcontent);
try
{
    descContent = mytextbox.Text;
    var stringcontent = new StringContent(descContent);
    stringcontent.Headers.ContentType.Parameters.Add(new NameValueHeaderValue("description", descContent));
    multipart.Add(stringcontent);

    HttpResponseMessage res = await client.PostAsync(new Uri("http://localhost/web/test/index.php"), multipart);
    res.EnsureSuccessStatusCode();
    mytextbox.Text = await res.Content.ReadAsStringAsync();
}
catch (HttpRequestException ex)
{
    mytextbox.Text = ex.Message;
}


此代码将发送图像文件,但不发送描述(字符串),我在互联网上搜索过,但找不到合适的答案。
这是PHP代码

if (isset($_FILES['photo']))
{
    echo $_FILES["photo"]["name"] . "<br>";
}
else
{
    echo "Image: Error<br>";
}

if (isset($_POST['description']))
{
    echo $_POST['description'];
}   
else
{
    echo "Text: Error";
}


我们将不胜感激。
谢谢你

【问题讨论】:

    标签: c# php webclient windows-phone-8.1 multipartform-data


    【解决方案1】:
    【解决方案2】:

    我搜索了很多,终于找到了出路。这是代码

    HttpClient client = new HttpClient();
    client.BaseAddress = new Uri("http://www.yourdomain.com");
    MultipartFormDataContent form = new MultipartFormDataContent();
    HttpContent content  = new StringContent("your string type data you want to post");
    form.Add(content, "name");
    var stream = await file.OpenStreamForReadAsync();
    content = new StreamContent(stream);
    content.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
    {
        Name = "image",
        FileName = file.Name
    };
    form.Add(content);
    var response = await client.PostAsync("index.php", form);
    mytextblock.Text = response.Content.ReadAsStringAsync();
    

    我写在我的博客上here 是代码。 :-) 快乐编码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-26
      • 2014-06-23
      • 2016-01-11
      • 2016-04-15
      • 1970-01-01
      • 2015-10-31
      相关资源
      最近更新 更多