での投稿に役立ちました。私はASP.NET Web APIを使って遊んでいます。アカウントコントローラ上のASP.NET Web APIへのC#
:ポストへ
// POST /api/accounts
public Account Post(Account account)
{
return account;
}
コードを使用します:
public void PostAccount()
{
// http://local_ip/api/accounts
var uri = string.Format("{0}", webServiceRoot);
var acc = new Account();
acc.AccountID = "8";
acc.AccountName = "Mitchel Cars";
acc.AccountNumber = "60";
acc.SubscriptionKey = "2535-8254-8568-1192";
acc.ValidUntil = DateTime.Now;
var request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/xml";
request.ContentLength = 800;
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Account));
xmlSerializer.Serialize(request.GetRequestStream(), acc);
var response = (HttpWebResponse)request.GetResponse();
XmlSerializer serializer = new XmlSerializer(typeof(Account));
var newAcc = (Account)serializer.Deserialize(response.GetResponseStream());
}
私は単に私が投稿しているオブジェクトを戻る私が築いてきた方法に投稿することができますを見て探しています
エラーチェックやボイラープレートのコードを削除して読みやすくしました。これは厳密には実際にPOSTに立ち向かうためのスパイクです。私の理解では、GetRequestStream()に書き込む必要があります。すべての読書などはうまくいくようですが、私はrequest.GetResponse()から戻ってきません。
私がシンプルにするとうまくいく。私はあなたがHTTPClientというクラスを使ってこのようなことをすることができるのを見ましたが、WinForms、Silverlight、およびWindows Phoneのすべてを.NET 3.5に基づいて動作させる必要があるので、使用できません。
POCOをサーバーは大きな助けになるでしょう、歓声!
ADDITIONAL INFO:
- 現在、私はエラーを取得していない、テストアプリはちょうどハングします。
- WebAPIプロジェクトを無効にすると、サーバーが見つかりませんでした。
- 私はルートやそのいずれも変更していません。
- 同じコントローラ作業になります。
エラーは何ですか? – Tejs
何も、奇妙な部分は...未処理の例外でさえ、私はおそらくタイムアウトするのを待っていますか? – deanvmc
それで、それは永遠にブロックされますか? – Tejs