2016-10-10 16 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ファイルを実装しました。

単純なWinFormアプリケーションである.Net(私は.NET開発者です)からこのAPIを呼び出そうとしていますが、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を使用したい理由:実際のデータでは、いつかのパラメータがバイト[](写真)を含んでいます、そしてFormUrlEncodedContentはそれを

を扱うことができません

助けてください ありがとうたくさん!

答えて

0

非常に異なるフォーマットです。 apiにAsp.Net Web APIのようなスマートモデルのバインダーがない場合は、動作しません。 HTTP経由でバイトを送信する典型的な方法であるバイト配列を常にbase64でエンコードすることができます。

+0

は、あなたはそれがより明確に...私の場合は は、FormUrlEncodedContentが働いていることはできますが、私はバイト[]からencodetringを使用している場合、それはUIRがここ 長すぎる言った: ます。http:// stackoverflowの.com/questions/23703735/how-to-set-large-string-inside-httpcontent-when-using-httpclient そのため、私はStringContentに変更しました... – haiduong87

+0

JSONまたはフォームエンコーディングを使用しますか?いずれにしても、PHPサービスを変更する必要があります。 – Crowcoder

+0

私はjsonが大丈夫だと思います~~ PHPサービスについて、どうすれば変更できますか?私はPHP開発者ではなく、私の場合の解決策を見つけようとしています。 – haiduong87

関連する問題