C# 有效url c上的Webclient 404协议错误#

C# 有效url c上的Webclient 404协议错误#,c#,webclient,http-error,C#,Webclient,Http Error,我有一个webclient,它可以调用URL,当我在浏览器中查看它时,它可以正常工作,这让我相信我需要在我的调用中添加标题 我已经这样做了,但仍然得到错误 我确实对同一API进行了其他调用,这些调用工作正常,并检查了我传递的所有参数是否与预期完全相同(大小写、拼写) 有人知道为什么我在一个在浏览器中工作得很好的呼叫中仍然出现协议错误吗?使用HTTP POST。你确定这是你想要的吗?如果您在浏览器中查看它,它很可能是一个GET,除非您正在填写某种web表单 有人可能会猜测,您试图做的是获得此响应“

我有一个
webclient
,它可以调用
URL
,当我在浏览器中查看它时,它可以正常工作,这让我相信我需要在我的调用中添加标题

我已经这样做了,但仍然得到错误

我确实对同一API进行了其他调用,这些调用工作正常,并检查了我传递的所有参数是否与预期完全相同(大小写、拼写)

有人知道为什么我在一个在浏览器中工作得很好的呼叫中仍然出现协议错误吗?

使用HTTP POST。你确定这是你想要的吗?如果您在浏览器中查看它,它很可能是一个GET,除非您正在填写某种web表单

有人可能会猜测,您试图做的是获得此响应“”

在这种情况下,您只需使用查询参数来表示该url,并使用其中一个重载执行GET

using (var wb = new WebClient())
{
    wb.Proxy = proxy;
    userDetails = wb.DownloadString("http://myserver/api/account/GetUser?email=" + register.Email);
} 
有一个很好的表格,概述了每个HTTP动词的语义,这可能有助于选择适合您的用例的
WebClient
方法。

使用HTTP POST。你确定这是你想要的吗?如果您在浏览器中查看它,它很可能是一个GET,除非您正在填写某种web表单

有人可能会猜测,您试图做的是获得此响应“”

在这种情况下,您只需使用查询参数来表示该url,并使用其中一个重载执行GET

using (var wb = new WebClient())
{
    wb.Proxy = proxy;
    userDetails = wb.DownloadString("http://myserver/api/account/GetUser?email=" + register.Email);
} 

有一个很好的表格,概述了每个HTTP动词的语义,这可能有助于选择适当的
WebClient
方法用于您的用例。

请公布确切的错误。我得到的只是一个404未找到,当我打开这些细节的时候,它说的都是原始病毒——一个像wireshark或fiddler这样的嗅探器,用来比较webclient和你的代码。错误404可能意味着许多不同的事情。为了防止黑客进入网站,通常在出现故障时会返回404,并且不会给出故障的确切原因。为了确保安全,请将
的“en-US”
替换为
的“en-US”
GetUser
函数是否需要GET或POST http操作?代理是否正确?请发布确切的错误。我得到的只是一个404未找到,当我打开详细信息时,它所说的是ProtocolError,一个类似wireshark或fiddler的嗅探器,用于将webclient与您的代码进行比较。错误404可能意味着许多不同的事情。为了防止黑客进入网站,通常在出现故障时会返回404,并且不会给出故障的确切原因。为了确保安全,请将
的“en-US”
替换为
的“en-US”
GetUser
函数是否需要GET或POST http操作?代理是否正确?