我想用C#做一个简单的HTTP请求,但是有些东西不工作,我得到的是< code>403 Forbidden状态代码。
当我尝试在邮递员中执行相同的请求时,一切正常。我尝试运行 Fiddler 并查看邮递员发送的所有标头。我复制粘贴了所有这些,但我仍然在 C# 代码发送的请求中得到了 403 禁止
。
public static void Main(string[] args)
{
FlurlHttp.Configure(settings => {
settings.HttpClientFactory = new MyClientFactory();
});
var url = "https://example.com"
.AppendPathSegments(new[] { "v1", "oauth", "accesstoken" })
.SetQueryParam("grant_type", "client_credentials")
.AllowAnyHttpStatus()
.WithBasicAuth("username", "password")
.WithHeaders(new {
User_Agent = "Something/0.4.0 Dalvik/2.1.0 (Linux; U; Android 5.1.1; SM-G975F Build/NRD90M)",
X_Secret_Header = "secret_encoded_value",
accept_encoding = "gzip, deflate",
Accept = "*/*"
});
HttpResponseMessage msg = url.GetAsync().Result;
Console.WriteLine("StatusCodeString: " + msg.StatusCode.ToString());
Console.WriteLine();
Console.WriteLine(msg.Content.ReadAsStringAsync().Result);
}
class MyClientFactory : DefaultHttpClientFactory
{
public override HttpMessageHandler CreateMessageHandler()
{
return new HttpClientHandler
{
AllowAutoRedirect = false
};
}
}
有人能解释一下为什么这不起作用吗?同样的标题,同样的一切。
我用“example.com”替换了 url,因为我不想在这里显示真正的 API URL。
也对不起这么多图片..我不知道如何以其他方式在这里显示问题。
我知道这一点,但要获得与邮递员发送的相同的C#代码,请让邮递员为生成代码,但首先必须从nuget或PM控制台获取RestSharp库,键入以下内容:
安装-软件包的恢复请求-版本1.2.0
步骤:
1-从邮递员那里调用您的Restapi
对我来说,问题在于C#中的TLS设置。尝试在应用程序的开头或HTTP请求代码之前添加这一行:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
从邮递员那里,右边应该有一个名为代码的链接。单击该按钮,然后选择C#以获取Postman生成的代码。把它贴进去试试。
我可以发送帖子并从邮递员那里获得请求,但当我实际从浏览器发送请求时,它无法获取记录,并在控制台中显示错误“body:{ error:“Collection ' undefined ' not found”}”。 已尝试Get和Post请求,它们都在POSTMAN中提供数据作为响应,但在浏览器中不起作用。显示错误“body:{ error:“Collection ' undefined ' not
我试图通过PHP实现AAA Cooper的SOAP API。当我将XML请求发送到http://wsportal.aaacooper.com:8188/wsportal20/wsGenEst,它通过邮递员,工作正常,但使用CURL时,它不会返回任何内容 我使用直接url(来自wsdl文件),因为他们的wsdl文件似乎已损坏,并且无法使用:http://wsportal.aaacooper.com:
我有一个简单的helper来发送post请求并返回结果,它应该与自定义构建的API进行通信,所有的工作都离不开一个特定的URL。 我的helper方法如下所示(使用RestSharp) 我要求如下: 非常感谢任何帮助。
我向REST API发出一个上传文件的POST请求。在《邮差》里一切都很好。我添加了基本授权和从服务器获得的自定义CSRF(XSRF)令牌。 我想做同样的使用卷曲。我从邮递员那里抄来的代码,似乎行不通。我认为该错误与CSRF有关,因为如果我关闭服务器上的CSRF,并且在没有CSRF令牌的情况下进行相同的cURL调用,那么一切工作都很好。 下面是更多的细节:这是Postman给出的cURL命令: 这
问题内容: 我想制作一个用C ++编写的服务器来支持我的游戏。我学习了套接字的基础知识,并编写了一个运行良好的基本聊天程序。现在,我想创建一个像Apache这样的HTTP服务器,但是仅用于AJAX请求- 响应部分。 我认为刚开始时,我复制了一个Apache响应文本,并使用C ++服务器程序发送了准确的响应。 问题是浏览器(Firefox)连接到apache,并且一切正常,除了所有请求均得到正确的响
我将GET请求发送到具有相同标头的相同endpoint,包括承载,但当我从Postman调用时得到200和正确的JSON,当我在我的(Vue)项目中使用Axios发送请求时,我得到302。 运行在localhost:8080(如果有用)上的本地项目的调用如下: 而在《邮递员》中,我所做的就是用相同的url创建一个GET请求,我在标题中添加的只是“承载者…” 我从axios得到的错误是: 响应状态是