2016-10-10 101 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

相關問題