[解決済み] C#でWebClientを使用してJSONをURLにPOSTする
2023-02-03 12:10:09
質問
私は、C#に変換する必要があるいくつかのJavaScriptコードを持っています。私のJavaScriptコードは、作成されたウェブサービスにいくつかのJSONをPOSTします。このJavaScriptコードは問題なく動作し、次のようになります。
var vm = { k: "1", a: "2", c: "3", v: "4" };
$.ajax({
url: "http://www.mysite.com/1.0/service/action",
type: "POST",
data: JSON.stringify(vm),
contentType: "application/json;charset=utf-8",
success: action_Succeeded,
error: action_Failed
});
function action_Succeeded(r) {
console.log(r);
}
function log_Failed(r1, r2, r3) {
alert("fail");
}
私はこれをC#に変換する方法を考えようとしています。私のアプリは .NET 2.0 を使用しています。私が知る限りでは、次のようなことをする必要があります。
using (WebClient client = new WebClient())
{
string json = "?";
client.UploadString("http://www.mysite.com/1.0/service/action", json);
}
この時点で少し行き詰っています。私は何が
json
がどのように見えるのかがわかりません。コンテンツタイプを設定する必要があるのかどうかがわかりません。コンテンツタイプを設定する必要があるのかどうか、その方法がよくわからない。また、私は
UploadData
. だから、私は正しいメソッドを使用しているかどうかさえわからないのです。ある意味、データのシリアライズが私の問題なのです。
誰か私に何が足りないのか教えてください。
ありがとうございます。
どのように解決するのですか?
あなたのコンテンツをパースするためにjsonシリアライザが必要です、おそらくすでに持っています。 リクエストを作成する方法についての最初の質問については、これはアイデアかもしれません。
var baseAddress = "http://www.example.com/1.0/service/action";
var http = (HttpWebRequest)WebRequest.Create(new Uri(baseAddress));
http.Accept = "application/json";
http.ContentType = "application/json";
http.Method = "POST";
string parsedContent = <<PUT HERE YOUR JSON PARSED CONTENT>>;
ASCIIEncoding encoding = new ASCIIEncoding();
Byte[] bytes = encoding.GetBytes(parsedContent);
Stream newStream = http.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
var response = http.GetResponse();
var stream = response.GetResponseStream();
var sr = new StreamReader(stream);
var content = sr.ReadToEnd();
は、それが役立つことを願っています。
関連
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] JavaScriptSerializer - 列挙型を文字列としてJSONシリアライズする
-
[解決済み] JSONをC#のダイナミックオブジェクトにデシリアライズする?
-
[解決済み] C#でWebClientを使用して特定のURLにデータをポストする方法
-
[解決済み】Newtonsoftを使用してJSONを.NETオブジェクトにデシリアライズする(またはLINQ to JSONかも?)
-
[解決済み】オブジェクトをXMLにシリアライズする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み] 関数を終了するには?
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】WebResource.axdとは何ですか?
-
[解決済み] Content-type: application/json; charset=utf-8」の本当の意味は何ですか?