FormUrlEncodedContent有效,但StringContent没有

时间:2016-10-10 11:19:16

标签: c# .net httpclient

我对这2个httpcontents有疑问。

我制作了一个webapi(php),从中复制:http://www.9lessons.info/2012/05/create-restful-services-api-in-php.html 我重新使用了Rest.inc.php,并实现了我自己的api文件。

我尝试从.Net(我是.Net开发人员)调用此api - 一个简单的WinForm应用程序 - FormUrlEncodedContent可以工作,但StringContent没有。 这是我的代码:

Dictionary<string, string> parameters = new Dictionary<string, string>();
        parameters.Add("username", username);
        parameters.Add("title", title);
        parameters.Add("text", text);
        var jsonString = JsonConvert.SerializeObject(parameters);
        var content = new StringContent(jsonString, Encoding.UTF8, "text/json");
        //var content = new FormUrlEncodedContent(parameters);
        PostData(url, content);

我之所以要使用StringContent:在实际数据中,有时参数会包含一个byte [](照片),而FormUrlEncodedContent无法处理它

请帮帮我 非常感谢!

1 个答案:

答案 0 :(得分:0)

它们的格式非常不同。如果api没有像Asp.Net Web API那样的智能模型绑定器,那么它将无法工作。您始终可以对字节数组进行base64编码,这是通过HTTP传输字节的典型方式。