0
我想通过C#访问Jira rest API。为此,我正在使用Windows.Web.Http.HttpClient
。但是我得到的所有返回值都是HTML。Jira REST API返回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;
}
你看结果消息还是流量(f.e.与fiddler)找出有关结果的泥潭?有时API会有一些奇怪的要求,比如没有用户代理集的情况下,github不起作用。 –
错误,你的意思是jira.atlassian._com_?对于.net,我只会得到错误,而.com版本会返回理智的信息。 – Koshinae
@KaiBrummund我刚刚尝试在没有UA的提琴手中发送请求,并且它工作正常。 – Knerd