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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

1413閲覧

c#にてgetResponse処理がnullになる場合があるので、取得できるようにしたい

yggd0114

総合スコア91

C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2021/04/05 05:43

Visual Studio2008にてクライアントプログラムからWEBREQUESTを用いて
jsonファイルを取得するような仕組みを構築しました。

しかし、一部取得できないパターンがあり、おそらくjsonの文字数の多さが原因ではないかと思っておりますが解決方法がわかりません。

設定等の変更で取得する方法がありますでしょうか?
コードは下記になります。

C#

1 2 //文字コードを指定する 3 System.Text.Encoding enc = 4 System.Text.Encoding.GetEncoding("shift_jis"); 5 //WebRequestの作成 6 System.Net.WebRequest req = 7 System.Net.WebRequest.Create("http://localhost/json.php"); 8 //メソッドにGETを指定 9 req.Method = "GET"; 10 //ContentTypeを"application/x-www-form-urlencoded"にする 11 req.ContentType = "application/x-www-form-urlencoded"; 12 //サーバーからの応答を受信するためのWebResponseを取得 13 System.Net.WebResponse res = req.GetResponse(); 14 //↑res.ContentLengthが取得できていない時0になります。問題ないときはjsonの文字数が格納されてました。 15 16 //応答データを受信するためのStreamを取得 17 System.IO.Stream resStream = res.GetResponseStream(); 18 //受信して表示 19 System.IO.StreamReader sr = new System.IO.StreamReader(resStream, System.Text.Encoding.UTF8); 20 //sr.ReadToEndが文字数多いとnullになります。 21 TEST root = Newtonsoft.Json.JsonConvert.DeserializeObject<TEST>(sr.ReadToEnd());

jsonの格納されているURLは、ブラウザで確認すると問題なく表示されます。
他必要な情報がありましたらご連絡ください。

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

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

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

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

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

dodox86

2021/04/05 05:52

> 一部取得できないパターンがあり、おそらくjsonの文字数の多さが原因ではないかと思っておりますが その、一部取得できないパターンとやらを明らかにするのが先決なのではないでしょうか。あと、そもそも、必ずHTTPステータス200(成功)で、かつコンテントボディ部にJSONが入っているのかどうか、とか。
yggd0114

2021/04/05 05:56

ステータスはどのように取得すればよいでしょうか?
退会済みユーザー

退会済みユーザー

2021/04/05 06:31

「//ContentTypeを"application/x-www-form-urlencoded"にする」とかもろもろ変ですが、そこはちょっと置いといて・・・ Fiddler などのツールを使って要求・応答をキャプチャして、問題ないときとダメな時を比較してください。そこにヒントが見つかるのではと思います。
yggd0114

2021/04/05 07:14

他アプリのインストールが難しい環境なので、visualstudio2008内で完結できる方法を教えていただけますと幸いです。
退会済みユーザー

退会済みユーザー

2021/04/05 07:45 編集

それではまるで「闇夜に鉄砲」的な話で(当たらない・・・ここに書いてあること以外は知り得ない第三者には特に)難しいですね。Fiddler ぐらいインストールする許可を得てください。
yggd0114

2021/04/05 08:06

>SurferOnWwwさん 許可は難しいので、ほかの方の回答を待ちたいと思います。 ありがとうございました。
guest

回答1

0

自己解決

別の方法を検討することになりましたのでクローズとさせていただきます

投稿2021/04/05 09:09

yggd0114

総合スコア91

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問