【问题标题】:POST request in NET Core (C#) from python to C#NET Core (C#) 中从 python 到 C# 的 POST 请求
【发布时间】:2019-07-21 10:44:17
【问题描述】:
import requests

requests.post('https://dathost.net/api/0.1/game-servers/54f55784ced9b10646653aa9/start',
              auth=('john@doe.com', 'secretPassword'))

如何用 C# 编写这个? (网络核心)

【问题讨论】:

标签: c# python .net-core request


【解决方案1】:

除了添加的 cmets,我建议使用名为 RestSharp 的库。 您可以轻松找到 nuget 包,代码将变得更简单:

var client = new RestClient("https://dathost.net");
client.Authenticator = new HttpBasicAuthenticator("john@doe.com", "secretPassword");

var request = new RestRequest("api/0.1/game-servers/{id}/start", Method.POST);
request.AddUrlSegment("id", "54f55784ced9b10646653aa9");

// execute the request
IRestResponse response = client.Execute(request);
var content = response.Content;

你也可以做异步请求:

client.ExecuteAsync(request, response => {
    Console.WriteLine(response.Content);
});

【讨论】:

    【解决方案2】:

    你可以用 HttpClient 做到这一点。

    首先在代码顶部添加 usings。

    using System.Net.Http;
    using System.Net.Http.Headers;
    

    然后在任何你想要的地方运行这段代码。

        var client = new HttpClient();
        var byteArray = Encoding.ASCII.GetBytes("john@doe.com:secretPassword");
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
    
        var response = await client.PostAsync(
            "https://dathost.net/api/0.1/game-servers/54f55784ced9b10646653aa9/start", null);
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      相关资源
      最近更新 更多