2012-10-11 40 views
1

我想发送类型为“text/xml”的HTTP POST请求请求我将发送Querystring值为:如何发送类型为“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 Anlayzer工具记录。

但我无法绕过此请求。请建议我是否有任何方式发送类型为"text/xml"的HTTP POST请求?

或我需要发送请求标头?

是我送的字节流格式后的数据只有 见我有下面的代码发送POST数据

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(); 
    } 

而且我已经添加请求头的内容类型。

在此先感谢...

回答

3
request.ContentType = 'text/xml'; 
+0

+1是的,你需要指定['内容Type'(HTTP: //en.wikipedia.org/wiki/List_of_HTTP_header_fields#Requests)标题。 –

+0

@veblin:thanx但我已经在请求标题中了..仍然不起作用 – Sky

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(); 
+0

我更新了我的问题,请检查 – Sky

+0

我按照您的答复检查了我的问题(已编辑)。仍然不起作用 – Sky

+0

在我提到上面提到的请求URL之前,还有几个类型为XML的HTTP POST请求,但只有这一个我无法得到响应。 – Sky