繁体   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