質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

IIS 7

IIS(インターネットインフォメーションサービス) 7は、 Microsoftによって開発された、Windowsの標準ウェブサーバーです。Window Server 2008 と Windows Vista向けにリリースされました。

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Q&A

解決済

1回答

8111閲覧

C#WindowsフォームアプリケーションからのPOST通信について

atsuhiro

総合スコア7

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

IIS 7

IIS(インターネットインフォメーションサービス) 7は、 Microsoftによって開発された、Windowsの標準ウェブサーバーです。Window Server 2008 と Windows Vista向けにリリースされました。

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

0グッド

0クリップ

投稿2016/08/18 14:36

###前提・実現したいこと
始めに、下記のサイトの通りにサーバアプリケーションを構築しました。
http://www.pine4.net/Memo/Article/Archives/386

やろうとしていることは上記とは別にC#でクライアントを構築し、HTTP通信でデータのやり取りをしようというものです。
クライアントはWindowsフォームアプリケーションで構築しております。

デフォルトでC#からのHTTPリクエストは何か制限がかかっているものなのでしょうか。

###発生している問題・エラーメッセージ
GETは問題なく処理できるのですが、POSTがクライアントのコンソールを確認したところ404エラーとなってしまい困っております。

###該当のソースコード

dynamic result = null; try { WebRequest req = WebRequest.Create("http://localhost:49200/Product.svc/AddProduct"); req.Timeout = 10000; req.Method = "Post"; Product sendData = new Product(1, "name1", 2000); req.ContentType = "application/json; charset=UTF-8"; req.ContentLength = DynamicJson.Serialize(sendData).Length; using (StreamWriter sw = new StreamWriter(req.GetRequestStream())) { sw.Write(DynamicJson.Serialize(sendData)); sw.Flush(); sw.Close(); } using (WebResponse wr = req.GetResponse()) { using (Stream st = wr.GetResponseStream()) { result = DynamicJson.Parse(st); } } } catch (Exception ex) { Console.WriteLine(ex); }

###試したこと
『マイドキュメント\IIS Express\Logs\アプリケーション』のログを確認したところPOSTでのサブステータスコードは0でした。

下記を参考にJavaでクライアントを作成したところGETもPOSTも成功したので、
クライアントからのPOST呼び出しが間違っているか、
それかIIS側でGET以外を弾いているのではないかと睨んでいます。
http://fantom1x.blog130.fc2.com/blog-entry-142.html

###補足情報(言語/FW/ツール等のバージョンなど)
開発環境
・Windows7
・Microsoft Visual Studio 2015(.NET Framework4.5.2)
・IIS Express 7.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

javaでPOSTしてみた(そして成功した)のがそのWebサービスでないならば、
C#でもjavaと同じところにPOSTしてみてはどうでしょう。

javaもWebサービスの方では試していないなら、WebサービスにPOSTで受け付ける定義が無いんだと思いますので、Webサービスの方を見直した方がいいでしょう。
(404なのでこちらの可能性が高いかなと思っています)

投稿2016/08/18 17:40

flied_onion

総合スコア2604

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

atsuhiro

2016/08/20 10:29

遅くなってしまいすみません。 java、C#ともに同じURLに対してPOSTリクエストを送信しています
flied_onion

2016/08/21 03:42

そうですか。404で応答が受け取れているので、URLがホントに間違いないか(大文字小文字も含め)確認したほうがいいかもしれません。 Productクラスと、javaのコードも可能なら質問に追加してもらえますか。提示の記事のURLが違うだけなら Product クラスだけで良いです。
atsuhiro

2019/06/30 02:11

諸事情あり、大変遅くなってしまいすみません。 結果としては、URL末尾のスラッシュが問題だったようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問