将命令 curl 为html或vb.net

pxyaymoc  于 2022-11-13  发布在  .NET
关注(0)|答案(3)|浏览(141)

我正在尝试访问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表单中执行此操作?

s4chpxco

s4chpxco1#

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

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
bbmckpt7

bbmckpt72#

若要在VB.Net中创建Web请求,可以使用HttpWebRequest类。
curl中的-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)
h4cxqtbf

h4cxqtbf3#

使用这个例子,它对我来说非常有效,一些改变。我把例子留给你。

Dim wHeader As WebHeaderCollection = New WebHeaderCollection()
        wHeader.Clear()
        wHeader.Add("Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9")
        wHeader.Add("Assume-User: g.n.moran%gmail.com")

        Dim wRequest As HttpWebRequest = DirectCast(System.Net.HttpWebRequest.Create(url), HttpWebRequest)
        wRequest.Headers = wHeader
        wRequest.Method = "POST"

        Dim byteArray As Byte() = Encoding.UTF8.GetBytes(json)
        wRequest.ContentType = "application/json"
        wRequest.ContentLength = byteArray.Length

        Dim dataStream As Stream = wRequest.GetRequestStream()
        dataStream.Write(byteArray, 0, byteArray.Length)
        dataStream.Close()
        dataStream.Dispose()
        ServicePointManager.Expect100Continue = False

        Dim wResponse As HttpWebResponse = DirectCast(wRequest.GetResponse(), HttpWebResponse)
        oerror.Codigo = CType(wResponse, HttpWebResponse).StatusCode
        oerror.Descripcion = CType(wResponse, HttpWebResponse).StatusDescription

        Dim responseFromServer As String = ""

        dataStream = wResponse.GetResponseStream()
        Dim reader As New StreamReader(dataStream)

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

相关问题