glitch.com 项目不能用 C 调用#

glitch.com project can't be called with c#

提问人:Priyansh Yadav 提问时间:1/10/2023 更新时间:1/10/2023 访问量:100

问:

我是在 glitch.com 项目的背景下写这个问题的。

因此,我在 glitch.com 中制作了一个测试项目(asp.net .net6 webapi),它返回您的 IP 地址。该网页的链接 https://ror-test.glitch.me/getip。它运行良好,当从浏览器调用时,它会准确地返回响应。现在,我想从 c# 客户端(准确地说是 unity3d)访问这个项目,但我无法访问它。

我的第一次尝试是使用httpclient.getstringasync-

法典-

HttpClient client = new HttpClient();
string response = await client.GetStringAsync(url);
System.Console.WriteLine(response);

输出-

Unhandled exception. System.Net.Http.HttpRequestException: Response status code does not indicate success: 403 (Forbidden).

在我的第二次尝试中,我使用了httpclient.getasync

法典-

HttpClient client = new HttpClient();
var response = await client.GetAsync(url);

输出-

响应 - https://jpst.it/348Ik

Response.Content - https://jpst.it/348LS

另外,当我从 nodejs 调用项目时,我的应用程序运行良好,它运行良好 -

法典-

var url = "https://ror-test.glitch.me/getip";

var XMLHttpRequest = require("xhr2");

var xhr = new XMLHttpRequest();
console.log("starting");
xhr.open("GET", url);

xhr.onreadystatechange = function () {
   if (xhr.readyState === 4) {
      console.log(xhr.status);
      console.log(xhr.responseText);
   }};

xhr.send();

输出-

starting
200
your ip: xx.xx.xxx.xx

代替 xx.xx.xxx.xx,我与 https://whatismyipaddress.com/ 交叉检查的真实 IP 即将到来。所以我确定问题出在 C# 客户端上。

请帮助我或我可以从 C# 客户端(确切地说是 Unity3D)调用它的任何其他方式。

C# 节点 .js httpclient 故障框架

评论


答:

1赞 sa-es-ir 1/10/2023 #1

您需要传递请求标头。User-Agent

HttpClient client = new HttpClient();

//add user agent
client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "fake");

var response = await client.GetAsync(url);

评论

0赞 Priyansh Yadav 1/10/2023
谢谢。在过去的 2 天里我一直在思考它,但它只是 1 行......TQSM的