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

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

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

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

Q&A

2回答

18385閲覧

C# HTTPによるPost送信 

hamaa

総合スコア45

C#

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

0グッド

0クリップ

投稿2017/01/30 09:08

編集2017/01/31 07:12

すいてません。まだ他の質問も解決してませんが、緊急で質問させてください。

UWPで作っているためHTTPclientを使います。
送信部でエラーです。 何かご指摘がありましたら教えてください。

//HttpClient を作成しヘッダーを設定します using (var aClient = new HttpClient()) { // POST 先の Uri theUri = new Uri("https://myURL"); aClient.DefaultRequestHeaders.Accept.Clear(); var byteArray = Encoding.ASCII.GetBytes(string.Format("{0}:{1}", 名前,パスワード)); aClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)); aClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/使う形式")); aClient.DefaultRequestHeaders.Host = theUri.Host; // Content-Type 設定 string myjson = @"{""time"":""2017-01-30T09:10:10.001 +09:00"",""source"":{""id"":""1234""},""type"":""string"","; myjson = myjson + @"""項目"":{""項目usb"":{""value"":123,""unit"":""A""}}}"; Debug.WriteLine(myjson); //var Content_And_Type = new StringContent(myjson, System.Text.Encoding.UTF8, "application/json"); StringContent Content_And_Type = new StringContent(myjson, System.Text.Encoding.UTF8, "application/使う形式"); System.Net.Http.HttpResponseMessage aResponse = null; try { // データを送信します aResponse = await aClient.PostAsync(theUri, Content_And_Type);←問題のエラー } catch (System.Net.Http.HttpRequestException ex) { Debug.WriteLine("---------------------------"); Debug.WriteLine("{0} Exception caught.", ex); } if (aResponse.IsSuccessStatusCode) { 出力.Text = "!!"; } else { // 応答ステータスコードを表示します。 String failureMsg = "HTTP Status: " + aResponse.StatusCode.ToString() + " – Reason: " + aResponse.ReasonPhrase; 出力.Text = failureMsg; } } コード

Error内容

! HttpRequestException'は ユーザー コードによつてハンドルされませんでした。
型 'System.Net.Http.HttpRequestException' の例外が mscorlib.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした
追加情報:この要求の送信中にエラーが発生しました。

BEACHSIDEさんありがとうございます。 BEACHSIDEさんご指摘部分修正
BEACHSIDEさん再度ありがとうございます
まだ、ダメでした。

もしわかったら教えてください。

追記 01/31 16:07
イミディエイド ウインドウ

System.Net.Http.HttpRequestException: この要求の送信中にエラーが発生しました。 ---> System.Net.WebException: リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です 場所 System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context) 場所 System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar) --- 内部例外スタック トレースの終わり --- 場所 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 場所 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 場所 ○○○.MainWindow.<PostButton_Click>d__1.MoveNext() 場所 C:パス~\○○○\MainWindow.xaml.cs: Exception caught. ステップ イン: 非ユーザー コード '○○○.App..ctor' をステップ オーバーしています ステップ イン: 非ユーザー コード '○○○.App.InitializeComponent' をステップ オーバーしています

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

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

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

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

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

PineMatsu

2017/01/30 09:11

どのようなエラーが出るのかも記述してください。
hamaa

2017/01/30 09:15

型 'System.Net.Http.HttpRequestException' の例外が mscorlib.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした
hamaa

2017/01/30 09:15

追加情報:この要求の送信中にエラーが発生しました。
hamaa

2017/01/30 09:16

titleが! HttpRequestException'は ユーザー コードによつてハンドルされませんでした。
PineMatsu

2017/01/30 09:17

質問の本文に追記修正で記述してください。
hamaa

2017/01/31 03:07

修正しました。
guest

回答2

0

System.Net.Http.HttpRequestException例外が出てるのなら、try~catchで例外をキャッチして詳細な内容を確認しましょう。

投稿2017/01/30 09:20

PineMatsu

総合スコア3579

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

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

hamaa

2017/01/31 05:24

PineMatsu了解しました。やってみます。のちほど回答します。
hamaa

2017/01/31 07:13

イミディエイド ウインドウ に出力してみました。 リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です ←これかな汗
PineMatsu

2017/01/31 08:05

恐らくそれですね。この質問は一度閉じて、別タイトルで質問を立てたほうが良いかもしれません。
hamaa

2017/01/31 12:44

汗…その後、影響受けない所でやったところ… catch に入らず、行けましたが StatusでNotAcceptableと出ます。これは…jsonの値の入れ方ですかね。。
guest

0

上述の通りExceptionの内容は見てほしいので、発生しているエラーと異なるかもしれませんが、
パッと見る限り、myjsonの値、json formatになってないですよね。{}がない。

Jsonを書くのが面倒であれば、Modelとなるクラス作ってJson.netとかのライブラリ使ってSerialzeするようにした方が安全かと。

投稿2017/01/31 05:16

BEACHSIDE

総合スコア294

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

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

hamaa

2017/01/31 05:24

BEACHSIDEさんありがとうございます。 BEACHSIDEさんご指摘部分修正
BEACHSIDE

2017/01/31 05:35

で、改善ありました?または何かエラーでてます?それは、例外発生しますか?それともレスポンスで、HttpのStatusCodeで200以外のコード返ってきてます?
BEACHSIDE

2017/01/31 05:36

(修正の先頭の{の位置、正しいです?)
hamaa

2017/01/31 07:16

ありがとうございましす!修正しました イミディエイド ウインドウ 。。 リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です ←これか。。汗
BEACHSIDE

2017/01/31 07:39

問題切り分けできてよかったですー♪
hamaa

2017/01/31 12:43

汗…その後、影響受けない所でやったところ… catch に入らず、行けましたが StatusでNotAcceptableと出ます。これは…jsonの値の入れ方ですかね。。
BEACHSIDE

2017/01/31 12:52

Jsonの問題かと思います。正しいJsonスキーマをどっかから入手して試してみると良いかと。あとはclass化してseralize/deserializeすれば簡単に扱えると思いますねー♪
hamaa

2017/01/31 13:08

BEACHSIDEさんありがとうございます。 頑張ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問