小编Ste*_*ane的帖子

Web服务 - C#客户端和Apache服务器基本身份验证 - 错误HTTP 400错误请求

我在这里写,因为我正在努力将PHP Web服务客户端转换为C#(VS2010).

Project在Framework4中,但Web服务在VS2010中添加,就像与Framework2兼容的Web服务(使用WSDL的Web Reference).

实际上我只是在经典的网络服务(Helloworld测试)上工作.

使用客户端C#我没有问题我将文本发送到Web服务,Web服务通过撤回文本来响应.我在Apache Server中没有错误.

如果我在.htaccess apache服务器(托管webservice服务器)中激活基本身份验证,那么在客户端C#中我有这个错误:

例外:WebException Bad Request with state HTTP 400:Bad Request.

在Apache错误日志中,我看到这一行:

[Thu Feb 02 23:52:06 2012] [error] [client XX.XX.XX.XX] Invalid URI in request
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"     
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:tns="https://www.domaine.com/api/helloworld/webservices.php?wsdl" 
xmlns:types="https://www.domaine.com/api/helloworld/webservices.php?wsdl/encodedTypes" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org
/2001/XMLSchema">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<tns:bonjour><prenom xsi:type="xsd:string">Toto</prenom></tns:bonjour>
</soap:Body>
</soap:Envelope>
POST /api/helloworld/webservices.php HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

.

我确定是不工作的凭据,因为当我尝试使用虚假用户和密码时,我总是有400个错误请求.

C#Client的代码是://我们创建webservice WebService mywebservice = new WebService();

// We define BASIC Authentication             
CredentialCache myCredentials = new CredentialCache();         
NetworkCredential netCred = new NetworkCredential("User1", "Pass1");     
myCredentials.Add(new Uri(mywebservice.Url), "Basic", netCred);
myCredentials.PreAuthenticate = …
Run Code Online (Sandbox Code Playgroud)

c# apache authentication web-services

5
推荐指数
1
解决办法
9017
查看次数

标签 统计

apache ×1

authentication ×1

c# ×1

web-services ×1