我似乎無法弄清楚這一點。無論我做什麼,我都會收到「417期望失敗」錯誤。我看過的每個地方都說我需要擺脫HttpWebRequest的Expect頭文件。設置靜態屬性ServicePointManager.Expect100Continue = false
或web請求request.ServicePoint.Expect100Continue = false
上的實例屬性永遠不會擺脫標題。我必須手動將其設置爲空以將其刪除。期望嘗試更新twitter狀態時失敗
無論如何,我仍然得到417錯誤。我錯過了什麼?
private static readonly MessageReceivingEndpoint UpdateStatusEndpoint
= new MessageReceivingEndpoint("http://twitter.com/statuses/update.xml", HttpDeliveryMethods.PostRequest);
public static XDocument UpdateStatus(ConsumerBase twitter, string accessToken, string message)
{
var data = new Dictionary<string, string>();
data.Add("status", message);
ServicePointManager.Expect100Continue = false; //Doesn't work
HttpWebRequest request = twitter.PrepareAuthorizedRequest(UpdateStatusEndpoint, accessToken, data);
request.ServicePoint.Expect100Continue = false; //setting here doesn't work either
//request.Expect is still set at this point unless I explicitly set it to null.
request.Expect = null;
var response = twitter.Channel.WebRequestHandler.GetResponse(request); //Throws exception
return XDocument.Load(XmlReader.Create(response.GetResponseReader()));
}
標題是什麼樣的? 417對Expect:header是一個特殊的反應,所以如果你確定你沒有發送這些,那真是太奇怪了。 – balpha 2009-07-27 06:41:07
在調用GetResponse()之前,「Expect」屬性爲null,並且標頭集合不包含「Expect」標頭。我將不得不與提琴手檢查,看看它是否仍然在那裏。我仍然無法解釋爲什麼既不呼叫「Expect100Continue = false」正在工作 – Micah 2009-07-27 13:29:16