首页 > 解决方案 > C# 到 R - HTTP GET

问题描述

我有一个来自相当多的文档化 API 的示例代码,但它是用 C# 编写的,我对语法不是很熟悉。

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Xml.Linq;

public class SimpleRestClient
{
    public void FetchANotice()
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Authorization = CreateBasicHeader("USER", "PASS");
        client.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/xml"));
        var task = client.GetStreamAsync("http://XYZ/Doffin/notice/2013-1234567");
        task.Wait();
        using (var stream = task.Result)
        {
            var xdoc = XDocument.Load(stream);

            // XML document fetched, do something with it
            Console.Out.WriteLine(xdoc);
        }
    }

    private static AuthenticationHeaderValue CreateBasicHeader(string username, string password)
    {
        var byteArray = Encoding.UTF8.GetBytes(username + ":" + password);
        return new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
    }
}

我想要的是使用 R 的 GET 请求,特别是 HTTR。这是我迄今为止最好的尝试:

dat <- httr::VERB(
  verb = "GET", url = "https://epsapiv3-doffin.test.eu-supply.com",
  httr::add_headers(
    Accept = "application/json",
    Content-Type = "application/json",
    Authorization = "Basic {base64_encode(Username:Password)}"
  )
)

标签: c#rhttr

解决方案


推荐阅读