Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Curl命令转换为html或vb.net_Html_Vb.net_Api_Curl - Fatal编程技术网

将Curl命令转换为html或vb.net

将Curl命令转换为html或vb.net,html,vb.net,api,curl,Html,Vb.net,Api,Curl,我正在尝试访问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%40smartshe

我正在尝试访问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表单中实现这一点?

这是一个相当大的主题,但最简单的是,您可以尝试一下

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

要在VB.Net中创建web请求,可以使用类

向内卷曲将创建一个额外的标头。要将头添加到
HttpWebRequest
中,只需将它们添加到
头中即可

例如:

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)

谢谢你多米尼克,当我尝试你的代码,我得到了错误远程服务器返回了一个错误:(401)未经授权。这会是我的身份验证问题吗?这同样有效。遗憾的是,我只能接受一个作为答案:(,但您不支持rockkkkVersion 1.0。请使用版本2.0-例如..../2.0/sheets。谢谢您,Ciaran。当我尝试两个代码时,我收到错误“远程服务器返回错误:(401)未经授权”。这与代币有关吗?恐怕您未经授权,即您被拒绝访问。您是否在标题中以及您的用户中提供了密码?请再次查看您的smartsheet文档,查看您在哪里提供了您的凭据是的,我自己生成了代币并提供了我的电子邮件地址。我使用了这篇文档是你在防火墙后面使用web代理的吗?事实上,我正试图连接到生产,但我没有授权,我已将其更改为沙箱,并且成功了。我的糟糕!!!但你太棒了。。