2012-04-01 6 views
0

私は次のコードを使用してページ投稿をシミュレートしています。私があれば例外を取得します知っているWebClient.UploadValues()を使用したページ投稿のシミュレーション

  1. :(。私はいくつかの保護されたメンバーを拡張することができるように、私はWebClientをサブクラス化しています)

    public class AuthorizeNetClient : WebClient 
    { 
        public string PostData(string url, FormCollection formData) 
        { 
         byte[] response = UploadValues(url, formData); 
         return Encoding.ASCII.GetString(response); 
        } 
    } 
    

    をこのコードは単純ですが、私は2つの問題を抱えていますエラーがありますが、成功していないHTTPステータスコードの結果はまだ可能です。結果を解析することなくこれらのステータスコードを取得する方法はありますか?

  2. また、私はこれを実際のページの投稿のように見せるために、たくさんのヘッダーを追加する必要があります。これを行う良い例と私が追加する必要があるヘッダーの種類?

答えて

1

FORM POSTに必要な唯一のリクエストヘッダーは 'content-type:x-www-form-urlencoded'です。

また、WebClientはすべてのHTTPステータスコード!= 2xx(つまり成功)の例外をスローしますので、ここで確認してください。 WebExceptionをキャッチし、e.Status == WebExceptionStatus.ProtocolErrorかどうかを確認するだけです。そのような場合は、Exceptionオブジェクト(e.Response)からHttpWebResponseオブジェクトを取得し、必要な処理を行います。

+0

ありがとうございますが、コンテンツタイプのヘッダーを設定していますが、返されたHTMLコンテンツはエラーを示しています。 ( '(14)リファラー、リレーレスポンス、またはレシートリンクURLが無効です.') –

関連する問題