Jira REST API returning HTML

本文关键字:HTML returning API REST Jira | 更新日期: 2023-09-27 18:36:35

我正在尝试通过C#访问Jira rest API。为此,我正在使用Windows.Web.Http.HttpClient.但是我得到的作为返回值的只是 HTML。

我正在调用以下网址:https://jira.atlassian.com/rest/api/latest/field/

小编辑
当我从浏览器调用 url 时,它工作正常,只是来自 HttpClient 的调用不起作用。

这是我的代码:

public async Task<IRestResponse> Execute(RestRequest request) {
    var restResponse = new RestResponse();
    var client = new HttpClient();
    var req = new HttpRequestMessage(request.Method, new Uri(BaseUrl, UriKind.RelativeOrAbsolute));
    foreach (var item in request.headers) {
        req.Headers[item.Key] = item.Value;
    }
    req.Headers.Accept.Add(new HttpMediaTypeWithQualityHeaderValue("application/json"));
    if (this.Authenticator != null)
        req.Headers["Authorization"] = this.Authenticator.GetHeader();
    var res = await client.SendRequestAsync(req);
    restResponse.Content = await res.Content.ReadAsStringAsync();
    restResponse.StatusCode = res.StatusCode;
    restResponse.StatusDescription = res.ReasonPhrase;
    if (!res.IsSuccessStatusCode) {
        restResponse.ErrorMessage = restResponse.Content;
        restResponse.ResponseStatus = ResponseStatus.Error;
    } else if (res.StatusCode == HttpStatusCode.RequestTimeout) {
        restResponse.ResponseStatus = ResponseStatus.TimedOut;
    } else if (res.StatusCode == HttpStatusCode.None) {
        restResponse.ResponseStatus = ResponseStatus.None;
    } else {
        restResponse.ResponseStatus = ResponseStatus.Completed;
    }
    return restResponse;
}

Jira REST API returning HTML

我刚刚发现了我的问题,我没有在任何地方添加相对路径。它只是调用 BaseUrl 意思是 https://jira.atlassian.com/,这解释了我为什么得到 HTML 页面。