我是一个最讨厌的VB开发人员,并且已经暂时修补了桌面应用程序。不过,在网络开发和称为“Restful”API的事情上,我总是一个菜鸟(它应该让你冷静吗?)
我试图遵循一些关于从体式获取任务信息的帖子背后的逻辑,但老实说,我没有时间研究并弄清楚Ruby on Rails,所以我可以为网页编写后端(我不知道该怎么做)连接到体式以获取一些信息。
我正在寻找可以指导我完成以下步骤的任何人(我真的不介意从网上阅读 重点 文章,所以请随时推荐他们,但到目前为止,我已经阅读了太多不记得的内容,没有任何内容可以为我指明一个有用的方向)
创建新应用程序时,我想:
我尝试过以下方法: 使用webrequest创建应用 阅读体式API上的例子(宁静......但不适合我):),rubygems,JSON,PHP等,但这是不切实际的,因为它只是为了获取更多信息...... 所以如果有一个VB开发人员(或c#)可以发布一个如何实现这个的简单示例,我真的很想知道并非常感激
一旦我收到单个请求,我就可以完成其余的工作。我只需要知道如何/在哪里开始
非常感谢您的建议
这是我目前正在使用的代码:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim response As String = GetResponse("https://app.asana.com/0/taskIDhere")
MsgBox(response)
End Sub
Public Function GetResponse(uri As String, Optional data As String = "", Optional method As String = "GET") As String
System.Diagnostics.Trace.WriteLine(uri)
' create request
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(uri), HttpWebRequest)
request.PreAuthenticate = True
request.Method = method
request.ContentType = "application/x-www-form-urlencoded"
' log in
Dim authInfo As String = API_KEY & ":" & ""
' blank password
authInfo = Convert.ToBase64String(Encoding.[Default].GetBytes(authInfo))
request.Headers("Authorization") = "Basic " & authInfo
' send data
If data <> "" Then
Dim paramBytes As Byte() = Encoding.ASCII.GetBytes(data)
request.ContentLength = paramBytes.Length
Dim reqStream As Stream = request.GetRequestStream()
reqStream.Write(paramBytes, 0, paramBytes.Length)
reqStream.Close()
End If
' get response
Try
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
Return New StreamReader(response.GetResponseStream()).ReadToEnd()
Catch ex As WebException
Dim response As HttpWebResponse = DirectCast(ex.Response, HttpWebResponse)
Throw New Exception((uri & " caused a " & CInt(response.StatusCode) & " error." & vbLf) + response.StatusDescription)
End Try
End Function
但这只是返回网页的内容
答案 0 :(得分:0)
(我在Asana工作。)你看过Asana API documentation的任何一个吗?您目前的主要问题是您访问的网址错误。所有API请求均以:
开头 https://app.asana.com/api/1.0/
然后根据您想要做的事情,您可以在路径中添加内容。大多数服务都有不同的URL用于基于Web的访问和API访问,因为它们的工作方式通常不同。
要获得简单的GET请求,请尝试将users/me
添加到上面的路径中。您的身份验证代码对我来说是正确的,因此我怀疑这将适用于您拥有的代码。