2016-10-10 96 views
0

我对这2个httpcontents有疑问。FormUrlEncodedContent有效,但StringContent不是

我制作了一个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不能处理它

请帮我 非常感谢!

回答

0

他们是非常不同的格式。如果api没有像Asp.Net Web API这样的智能模型绑定器,那么它将不起作用。你总是可以base64编码你的字节数组,这是通过HTTP传输字节的典型方式。

+0

你能解释得更清楚...... 在我的情况下,FormUrlEncodedContent工作过,但如果我使用encodetring从一个byte [],它说的快速反应小组太长 这里: HTTP://计算器.com/questions/23703735/how-to-set-large-string-inside-httpcontent-when-using-httpclient 因此,我更改为StringContent,因为该帖子显示为... – haiduong87

+0

是否要使用JSON或表单编码?无论哪种方式,你将不得不改变你的PHP服务。 – Crowcoder

+0

我认为json是好的~~ 关于php服务,我该如何改变它?我不是一个PHP开发人员,只是尝试为我的案例找到一个解决方案... – haiduong87

相关问题