2013-02-12 196 views
3

我试图访问smartsheet API。他们有一个用curl提供的示例代码来访问它。将curl命令转换为html或vb.net

要访问工作表列表,请使用您最喜欢的编程或脚本语言构建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表单中执行此操作?

回答

6

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

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 
+0

谢谢夏兰。当我尝试了你的两个代码时,我收到错误“远程服务器返回错误:(401)未经授权”。这与令牌有关吗? – 2013-02-12 16:13:42

+0

您是未经授权的,我很害怕,即您被拒绝访问。你是否有密码提供在标题以及你的用户?再次查看您的智能表文档并查看您提供凭据的位置 – 2013-02-12 16:19:42

+0

是的,我已经自己生成了令牌并提供了我的电子邮件地址。我已经使用这个文档http://www.smartsheet.com/developers/api-documentation#h.3bqgetcbgx89 – 2013-02-12 16:21:56

2

要创建一个Web请求VB.Net,你可以使用HttpWebRequest类。

卷曲中的-H argument创建额外的标题。要将标题添加到HttpWebRequest,只需将它们添加到WebHeaderCollectionHeaders即可。

例子:

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) 
+0

谢谢dominic,当我尝试你的代码时,我得到了错误远程服务器返回一个错误:(401)未经授权。这是我的身份验证问题吗? – 2013-02-12 16:12:42

+0

这也适用。可悲的是,我只能接受一个答案:(但你rockkkk – 2013-02-12 16:33:07

+0

版本1.0不支持。请使用2.0版 - 例如.../2.0 /表。 – avioing 2016-02-29 22:42:07