3

我正在尝试访问 smartsheet API。他们在 curl 中提供了一个示例代码来访问它。

要访问您的工作表列表,请使用您喜欢的编程或脚本语言构建一个 HTTPS 请求。这是一个使用 linux 命令行中的 curl 的示例:

curl https://api.smartsheet.com/1.0/sheets \
-H "Authorization: Bearer 0da6cf0d-848c-4266-9b47-cd32a6151b1f" \
-H "Assume-User: john.doe%40smartsheet.com"

我如何在 vb.net 或从 html 表单中做到这一点?

4

2 回答 2

7

这是一个相当大的主题,但最简单的你可以试试这个......

Imports System.Net

进而...

Dim wHeader As WebHeaderCollection = New WebHeaderCollection()

wHeader.Clear()
wHeader.Add("Authorization: Bearer 0da6cf0d-848c-4266-9b47-cd32a6151b1f")
wHeader.Add("Assume-User: john.doe%40smartsheet.com")

Dim sUrl As String = "https://api.smartsheet.com/1.0/sheets"

Dim wRequest As HttpWebRequest = DirectCast(System.Net.HttpWebRequest.Create(sUrl), HttpWebRequest)

'wRequest.ContentType = "application/json" ' I don't know what your content type is
wRequest.Headers = wHeader
wRequest.Method = "GET"

Dim wResponse As HttpWebResponse = DirectCast(wRequest.GetResponse(), HttpWebResponse)

Dim sResponse As String = ""

Using srRead As New StreamReader(wResponse.GetResponseStream())
    sResponse = srRead.ReadToEnd()
End Using

我不熟悉 smartsheet API,但您可以将其用作起点。

如果您使用的是代理,则需要添加...

Dim wProxy As IWebProxy = WebRequest.GetSystemWebProxy()
wProxy.Credentials = System.Net.CredentialCache.DefaultCredentials

并在您提出请求时指定代理...

wRequest.Proxy = wProxy
于 2013-02-12T15:44:07.210 回答
2

要在 VB.Net 中创建 Web 请求,您可以使用HttpWebRequest该类。

curl 中的-H参数创建了一个额外的标题。要将标题添加到HttpWebRequest您只需将它们添加到.WebHeaderCollection Headers

例子:

Dim myHttpWebRequest = CType(WebRequest.Create("https://api.smartsheet.com/1.0/sheets"), HttpWebRequest)
myHttpWebRequest.Headers.Add("Authorization: Bearer 0da6cf0d-848c-4266-9b47-cd32a6151b1f")
myHttpWebRequest.Headers.Add("Assume-User: john.doe%40smartsheet.com")
Dim myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
于 2013-02-12T15:47:33.663 回答