1

を使用してページから応答ストリームを取得するために可能な限りの方法でダウンロードしようとしましたHttpWebRequestが、これは他のすべてでは正常に機能しますが、このページでは機能しません。ご覧のとおり、返されたデータは HTML ですが、専門家ではないメタ タグが含まれていますが、このブロックを取得しようとしても、

{"error":4,"message":"Unsupported link format or unsupported hoster"}

できないようです.GETコンテンツタイプを「text/json」として指定しようとしましたが、何も役に立ちませんでした.

以下は、ブラウザーでページを開いたときに返される HTML コンテンツですが、コードでは空の文字列を返します。

    <html>
    <meta style="visibility: hidden !important; display: block !important; width: 0px !important; height: 0px !important; border-style: none !important;"></meta>
    <head></head>
    <body>
      <pre style="word-wrap: break-word; white-space: pre-wrap;">{"error":4,"message":"Unsupported link format or unsupported hoster"}
      </pre>
    </body>
    </html>

編集:

上記の同じ html を localhost のページにコピーして、そのコンテンツをフェッチしようとしましたが、実際に機能しました。IIS にコンテンツのフェッチを妨げる制限があるのではないでしょうか?

4

3 に答える 3

1

問題がクライアントにあるという証拠はありますか? より適切な質問は、「なぜサーバーはこの奇妙なコンテンツを送信しているのか?」です。クライアントは、サーバーが送信するものをすべて受信します。

サーバーをデバッグして調べるか、サーバー側のコードを含む新しい質問をして、それについて具体的に尋ねることをお勧めします。

于 2013-01-27T14:17:53.287 に答える
0

WebRequestクラスを使用してみてください。ここにそのドキュメントがあります。

この例は次のページにあります。

// Create a request for the URL.        
WebRequest request = WebRequest.Create ("[your_url]");
// If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials;
// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
// Display the status.
Console.WriteLine (response.StatusDescription);
// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream ();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader (dataStream);
// Read the content. 
string responseFromServer = reader.ReadToEnd ();
// Display the content.
Console.WriteLine (responseFromServer);
// Cleanup the streams and the response.
reader.Close ();
dataStream.Close ();
response.Close ();

Consoleこれにより、そのページのHTMLコンテンツが印刷されます。

于 2013-01-27T13:05:52.777 に答える
0

私は同じ問題を抱えていましたが、その原因は、以前にメソッドを に設定してHEADいて、後のリビジョンで本体を解析する必要があったことです。

于 2013-05-02T10:20:26.360 に答える