在针对同一个帖子阅读不同的答案后,我尝试了他们讨论中提到的几乎所有选项,但我仍然收到错误:
错误No1 : The remote server returned an error: (404) Not Found.
或
错误No2 : The remote server returned an error: (405) Method Not Allowed
。
以下是我的代码:
var httpWebRequest = (HttpWebRequest)WebRequest.Create("URL?Paramter1=pc&user=u1&password=p1");
httpWebRequest.ContentType = "application/json; charset=utf-8";
httpWebRequest.Method = "POST";
httpWebRequest.Accept = "application/json";
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
我在最后一行收到错误,即
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
如果我使用httpWebRequest.Method="GET"
我收到如上所述的错误编号1,如果我使用httpWebRequest.Method="Post"
我收到错误编号2.
答案 0 :(得分:0)
使用:
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, UriTemplate = "abcxx")]
在声明方法的服务页面上,以大写字母键入POST
。我认为你输入的是小写字母。
答案 1 :(得分:0)
我也面对这个问题。此错误的根本原因可能是错误的Web配置文件中的端点地址..
这是我错误的网络配置
<services>
<service behaviorConfiguration="mexBehavior" name="sample.sample">
<endpoint address="http://xxx.xxx.x.xxx:9335" binding="basicHttpBinding" contract="sample.Isamplebase" />
<host>
<baseAddresses>
<add baseAddress="http://xxx.xxx.x.xxx:9335" />
</baseAddresses>
</host>
</service>
</services>
应该是这样的
<services>
<service behaviorConfiguration="mexBehavior" name="sample.sample">
<endpoint address="http://xxx.xxx.x.xxx:9335/sample.svc" binding="basicHttpBinding" contract="sample.Isamplebase" />
<host>
<baseAddresses>
<add baseAddress="http://xxx.xxx.x.xxx:9335" />
</baseAddresses>
</host>
</service>
</services>
现在它的工作正常......最好是你的......好运。
答案 2 :(得分:0)
我的赌注是Paramter1或用户名或密码不正确 - 换句话说,您尝试使用的用户不存在。
服务器返回 404 Not Found ,不是因为您没有找到正确的API方法,而是因为您要求的对象不存在。
答案 3 :(得分:0)
查看您的代码,创建URL并以url形式编码的数据进行传递,但是随后将内容类型设置为application/json
。我想你要么:
application/x-www-form-urlencoded
作为内容类型或