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