【发布时间】:2015-01-27 05:55:51
【问题描述】:
我一直在尝试使用 vb.net 使用 eventbrite api,我使用 HttpClient 来使用 api,但是当我使用相同的标头调用相同的方法时它只返回 HTTP 401 Unathorised使用邮递员,它会返回带有HTTP 200 OK的预期响应
VB.Net
Dim objClient As New HttpClient()
objClient.BaseAddress = New Uri("https://www.eventbriteapi.com/v3/")
objClient.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", "IODVRTRFJ5FVEXZXXXXX")
Dim objResponse As HttpResponseMessage = Await objClient.GetAsync("events/search?organizer.id=77181XXXXX")
If objResponse.IsSuccessStatusCode Then
Dim strJSON As String = Await objResponse.Content.ReadAsStringAsync
txtOutput.Text = strJSON
Else
txtOutput.AppendText(objResponse.ToString + vbCrLf)
txtOutput.AppendText(objResponse.RequestMessage.ToString + vbCrLf)
End If
objClient.Dispose()
请求
Method: GET, RequestUri: 'https://www.eventbriteapi.com/events/search?organizer.id=77181XXXXX', Version: 1.1, Content: <null>, Headers:
{
Authorization: Bearer IODVRTRFJ5FVEXZXXXXX
}
响应
StatusCode: 401, ReasonPhrase: 'UNAUTHORIZED', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Transfer-Encoding: chunked
Connection: keep-alive
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
Vary: Accept
X-UA-Compatible: IE=edge
X-Frame-Options: SAMEORIGIN
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Authorization
Date: Fri, 28 Nov 2014 14:32:02 GMT
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Set-Cookie: SS=AE3DLHTSIyq8Ey6stmsFe7sH0LwxwTjQNw; Domain=.eventbriteapi.com; httponly; Path=/; secure
Set-Cookie: eblang=lo%3Den_US%26la%3Den-us; Domain=.eventbriteapi.com; expires=Sat, 28-Nov-2015 14:32:02 GMT; httponly; Path=/
Set-Cookie: SP=AGQgbblV535q50zSGYa6PvdeMsiuIPDnFlsnyVrk5VIvAnFRtrUHh7AU791a46nkYXJQhH3_VZLFgHuw4j8sAYXPy3l6adKHpQ5js-vjoXyJpTp51nd4Ewnhd-lS9UlI2YL0rUaHCkLvt4_buXJOvRuN222hINBjvQBsJPrR9woApj_ic0MT0cJcNIDsY40PnEOhH8p2xijrXVZHQa6fjwemsjgJEu_Vn6NBi4UO9hBL7sLl-eetYyE; Domain=.eventbriteapi.com; httponly; Path=/
Set-Cookie: G=v%3D1%26i%3D1429e3af-ac09-4b67-b2a3-1f4473c28bcd%26a%3D51b%26s%3DAPDvTK5mqMI40Xz80zXcPKvFx7daGz_DOA; Domain=.eventbriteapi.com; expires=Sat, 28-Nov-2015 14:32:02 GMT; httponly; Path=/
Set-Cookie: AN=; expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0; Path=/
Server: nginx
Allow: GET
Allow: HEAD
Allow: OPTIONS
Content-Type: application/json
}
邮递员
【问题讨论】:
-
试试 fiddler 看看到底传递了什么。
-
不幸的是,api 只能在 https 上运行,所以它全部加密并且没有多大帮助:(
-
啊,是的,我没想到...
-
您是否尝试过在发送请求之前指定内容类型(我曾经遇到过这种情况)? client.DefaultRequestHeaders.Accept.Clear() _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"))
-
很遗憾没有效果,还有其他想法吗?
标签: vb.net httpclient asp.net-web-api eventbrite postman