1

タイプ「text/xml」のHTTP POSTリクエストを送信したいリクエストとともに、クエリ文字列値を次のように送信しています。

"?wicket:interface=:9:XXOIForm:transactionForm:componentListPanel:componentListView:0:component:expressEntryContainer:expressEntry::IBehaviorListener:0:&wicket:pcxt=XXOIForm&random=0.48316250719134435"

手動で追加するいくつかのリクエスト ヘッダーを次に示します。

request.Headers.Add("Accept-Language", "en-us,en;q=0.5");
request.Headers.Add("Wicket-Ajax", "true");
request.Headers.Add("Wicket-FocusedElementId", "id1a");

このすべてのログは、私が HTTP アナライザー ツールを通じて記録したものです。

しかし、この要求をバイパスすることはできません。タイプのHTTP POSTリクエストを送信する方法はあります"text/xml"か?

または、リクエストヘッダーで何を送信する必要がありますか?

はい、投稿データをバイトストリーム形式でのみ送信しています投稿データを送信する次のコードがあることを確認してください

protected void WritePostDataToRequest(string postData)
    {

        postData = postData.Replace("/", "%2F").Replace(",", "%2C").Replace(" ", "+").Replace("!", "%21").Replace("#", "%23");
        data = encoding.GetBytes(postData);
        request.ContentLength = data.Length;
        newStream = request.GetRequestStream();
        newStream.Write(data, 0, data.Length);
        newStream.Close();
    }

また、リクエストヘッダーのコンテンツタイプをすでに追加しました。

前もって感謝します...

4

2 に答える 2

3
request.ContentType = 'text/xml';
于 2012-10-11T04:56:30.720 に答える
1

バイト ストリームを使用してデータを送信します。

string data="wicket:interface=:9:eligibitiyBenefitsInquiryForm:transactionForm:componentListPanel:componentListView:0:component:expressEntryContainer:expressEntry::IBehaviorListener:0:&wicket:pcxt=EligibilityBenefitInquiryPage&random=0.48316250719134435"

byte[] dataStream = Encoding.UTF8.GetBytes(data);    
string uriStr = "www.abc.com";
HttpWebRequest rqst = (HttpWebRequest)HttpWebRequest.Create(Uri.EscapeUriString(uriStr));
rqst.KeepAlive = false;
rqst.Method = "POST";


rqst.ContentType = "application/x-www-form-urlencoded";
rqst.ContentLength = dataStream.Length;
Stream newStream = rqst.GetRequestStream();

newStream.Write(dataStream, 0, dataStream.Length);
newStream.Close();
WebResponse resp = rqst.GetResponse();
于 2012-10-11T05:03:02.727 に答える