簡體   English   中英

如何使用 header 和正文格式 x-www-form-urlencoded 創建 Http 請求並在 Z6867CEBC55D2E67B73 中獲取 cookies 值

[英]How to create Http request with header and body format x-www-form-urlencoded and get the cookies value in vb.NET

我正在嘗試使用以下屬性發出 http 請求

  1. Header - 包含一個具有設定值的鍵“Referer”
  2. 正文格式為 x-www-form-urlencoded
  3. 正文包含多個鍵 'type'、'encpwd'、'user'、'pwd' & 'admsid'

在請求的響應中,我需要獲取 cookies 中的值。 I'm able to do it via Postman get the cookies, however I need to write a function/method to achieve this and return the cookies values which will be required to authenticate in future API calls.

從互聯網上,我找到了一個示例代碼,如下所示

Dim client As RestSharp.RestClient = New RestSharp.RestClient(inEndpoint)
client.Timeout = 10000
client.CookieContainer = New System.Net.CookieContainer

Dim request As RestSharp.RestRequest = New RestRequest(RestSharp.Method.Post)
request.AddHeader("Referer", strReferer)

Dim response As IRestResponse = client.Execute(request)
responsecode=response.StatusCode
responsecontent=response.Content

Dim cookies =client.CookieContainer.GetCookieHeader(response.ResponseUri)
cookiecontainer=cookies.ToString

Console.WriteLine("cookieJar "+ cookies.ToString)
Console.WriteLine("response Uri "+response.ResponseUri.ToString)

但是當我在 Visual Studio 中嘗試這段代碼時(我已經安裝了 RestSharp package),我遇到了很多錯誤,如下所示:

client.Timeout = 10000  -- Timeout is not a member of RestClient

client.CookieContainer = New System.Net.CookieContainer -- Property 'CookieContainer' is 'Read-Only'

Dim request As RestSharp.RestRequest = New RestRequest(RestSharp.Method.Post) -- Type 'RestRequest' is not defined

request.AddHeader("Referer", strReferer) -- 'AddHeader' is not a member of 'RestRequest'

Dim response As IRestResponse = client.Execute(request) -- Type 'IRestResponse' is not defined

我對 https 請求很陌生,請在我犯錯誤的地方幫助我。 此外,我不知道/找到如何使用 x-www-form-urlencoded 格式添加正文參數,在 JSON 中提到的所有地方,但是此 API 服務僅接受此格式的正文。

我在這里先向您的幫助表示感謝。

我試過下面的代碼

Dim client As RestClient = New RestClient(endPoint)
Dim request As RestRequest = New RestRequest(Method.Post)
request.AddHeader("Referer", strReferer)
request.AddParameter("application/x-www-form-urlencoded", "type=" + strType + "&encpwd= " + strEncPwd + "&user=" + strUser + "&pwd=" + strPwd + "&admsid=" + stradmsID, ParameterType.RequestBody)
Dim response = client.Execute(request)

它生成異常“無法發送具有此動詞類型的內容主體”。

請幫忙

下面的代碼運行成功。

    Dim client = New RestClient(endPoint)
    Dim request = New RestRequest()
    request.Method = Method.Post
    request.AddHeader("Referer", strReferer)
    request.AddHeader("Content-Type", "application/x-www-form-urlencoded")
    request.AddParameter("type", strType)
    request.AddParameter("encpwd", strEncPwd)
    request.AddParameter("user", strUser)
    request.AddParameter("pwd", strPwd)
    request.AddParameter("admsid", stradmsID)
    Dim response = client.Execute(request)
    Dim cookies = client.CookieContainer.GetCookieHeader(response.ResponseUri)
    Console.WriteLine("cookieJar " + cookies.ToString)
    Console.WriteLine(response.Content)

希望它會幫助某人。 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM