使用webrequests连接到体式

时间:2013-05-16 12:54:30

标签: asana

我是一个最讨厌的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

但这只是返回网页的内容

1 个答案:

答案 0 :(得分:0)

(我在Asana工作。)你看过Asana API documentation的任何一个吗?您目前的主要问题是您访问的网址错误。所有API请求均以:

开头

https://app.asana.com/api/1.0/

然后根据您想要做的事情,您可以在路径中添加内容。大多数服务都有不同的URL用于基于Web的访问和API访问,因为它们的工作方式通常不同。

要获得简单的GET请求,请尝试将users/me添加到上面的路径中。您的身份验证代码对我来说是正确的,因此我怀疑这将适用于您拥有的代码。