簡體   English   中英

網絡服務-400錯誤的請求

[英]web service - 400 bad request

我想從C#使用受htaccess保護的php Web服務。 我通過在VS 2010中添加網絡引用來添加服務。

mywsfromwsdl myws = new mywsfromwsdl();

System.Net.CredentialCache myCredentials = new System.Net.CredentialCache();
NetworkCredential netCred = new NetworkCredential("user", "pass");
myCredentials.Add(new Uri(myws.Url), "Basic", netCred);
myws.Credentials = myCredentials;
myws.PreAuthenticate = true;

tbxIN.Text = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> "+
            " <test> "+
            " <parm1>4</parm1>  "+
            " <parm1>2</parm1>  "+
            "  </test>";

tbxOUT.Text= myws.func1(tbxIN.Text.ToString());

VS在最后一行顯示了一個稱為400 Bad REquest的錯誤。 如果我刪除服務器上的.htaccess文件,則pgm可以正常工作,但無法刪除。 因為其他PHP用戶使用該服務。

有人可以告訴我如何正確發送證書嗎?

由喬

根據MSDN,您不需要憑據緩存:

 // Set the client-side credentials using the Credentials property.
 ICredentials credentials = new NetworkCredential("Joe",SecurelyStoredPassword,"mydomain");
 math.Credentials = credentials;

您是否嘗試過此方法而不是緩存對象? 更多信息可以在這里找到。

有時C#和Apache會有些沖突:在這種情況下,由於身份驗證處於活動狀態,您的客戶端可能期望100 Continue響應,但服務器不會發送響應。

這種行為通過以下行切換:

ServicePointManager.Expect100Continue = false;

在執行請求之前添加它。

還值得指出的是,當發生400 bad request時,您可能會在服務器日志中找到一些有用的詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM