> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# httpGet

> 向 API 介面發出 HTTP GET 請求，支援身分驗證、代理、TLS/SSL 和自定義頭。

對基於 Web 的特定 API 資源發出 HTTP GET 請求。

## 必需的參數

* **url**: 要檢索的 URL。

## 可選的參數

* **authentication**: 用於設定手動生成的授權頭，例如 bearer token。
* **authscheme**: 要使用的授權機制。僅當提供使用者和密碼時相關。允許的值為 `BASIC`、`DIGEST`、`NONE` 和 `NTLM`。預設值為 `BASIC`。
  * **user**: 如果 authscheme 參數設定為 `NONE` 以外的其它值，則使用該使用者名稱進行身分驗證。
  * **password**: 如果 authscheme 參數設定為 `NONE` 以外的其它值，則使用該密碼進行身分驗證。
* **charset**: 交換／傳輸的資料的字元集。預設值為 `UTF-8`。
* **client\_id**: 用戶端 ID。僅限 OAuth 1.0。
* **client\_secret**: 客戶金鑰。僅限 OAuth 1.0。
* **cookie:\***: 新增到請求中的 cookie。
* **firewall\_port**: 防火牆的端口號。
* **firewall\_server**: 防火牆的 IP 地址或主機名。
  * **firewall\_user**: 向防火牆進行身分驗證的使用者 ID。
  * **firewall\_password**: 向防火牆進行身分驗證的密碼。
* **firewall\_type**: 防火牆的型別。允許的值為 `NONE`、`TUNNEL`、`SOCKS4` 和 `SOCKS5`。預設值為 `NONE`。
* **followredirects**: 是否遵循 HTTP 重新導向。允許的值為 `TRUE` 或 `FALSE`。預設值是 `TRUE`。
* **header:name#**: 與請求一起傳遞的每個自定義頭的名稱。
* **header:value#**: 與請求一起傳遞的每個自定義頭的值。
* **httpversion**: HTTP 協議版本。允許的值為 `1.0` 或 `1.1`。預設值為 `1.1`。
* **ifmodifiedsince**: 如果將 if-modified-since 日期和時間用作檢索結果的篩選器（例如：Sat, 25 Feb 2024 04:11:47 GMT）。
* **internalconfig#**: 設定一個內部配置設定。
* **localfile**: 如果指定，則 GET 的結果將寫入此檔案。
* **logfile**: 用來記錄請求和回應日誌的全路徑。需要配合 `verbosity` 使用。
* **sign\_method**: 用於計算 OAuth 1.0 簽章的簽章方法。允許的值為 `HMAC-SHA1` 和 `PLAINTEXT`。預設值為 `HMAC-SHA1`。
* **sslcert**: 要從伺服器接受的 TLS／SSL 憑證。這可以採用完整 PEM 憑證，包含憑證的檔案路徑，公開金鑰，MD5 指紋或 SHA-1 指紋的形式。 指定憑證以外的任何憑證都將被拒絕。 如果未指定，此值預設為 `TRUSTED`，這意味著僅接受系統信任的憑證。 如果設定為 `*`，則接受任何憑證。
* **proxy\_authscheme**: 代理伺服器的認證方案。允許的值為 `BASIC`、`DIGEST`、`PROPRIETARY`、`NONE` 和 `NTLM`。預設值為 `BASIC`。
* **proxy\_authtoken**: 代理身分驗證權杖。
* **proxy\_auto**: 是否應從 Windows 系統設定中檢測代理。這優先於其它代理設定，在 Java 中不可用。允許的值為 `TRUE` 或 `FALSE`。預設值為 `FALSE`。
* **proxy\_port**: 代理伺服器的端口號。
* **proxy\_server**: 用於請求的代理伺服器的 IP 地址或主機名。
  * **proxy\_user**: 向代理伺服器進行身分驗證的使用者 ID。
  * **proxy\_password**: 與代理伺服器進行身分驗證的密碼。
* **proxy\_ssltype**: 代理伺服器的 TLS／SSL 型別。允許的值為 `AUTO`、`ALWAYS`、`NEVER` 和 `TUNNEL`。預設值為 `AUTO`。
* **sslclientcert**: 用戶端憑證的名稱。
* **sslclientcertpassword**: 用戶端憑證的密碼。
* **sslclientcertsubject**: 用戶端憑證的主題。使用星號會找到儲存中的第一個憑證。
* **sslclientcerttype**: 用戶端憑證的儲存型別。允許的值為 `USER`、`MACHINE`、`PFXFILE`、`PFXBLOB`、`JKSFILE`、`JKSBLOB`、`PEMKEY\_FILE`、`PEMKEY\_BLOB`、`PUBLIC\_KEY\_FILE`、`PUBLIC\_KEY\_BLOB`、`SSHPUBLIC\_KEY\_BLOB`、`P7BFILE`、`P7BBLOB`、`SSHPUBLIC\_KEY\_FILE`、`PPKFILE`、`PPKBLOB`、`XMLFILE` 和 `XMLBLOB`。
* **timeout**: 操作完成的逾時時間（以秒為單位）。零（0）表示沒有逾時。預設值為 `60`。
* **token**: OAuth 的請求權杖。
* **token\_secret**: 請求權杖金鑰。僅限 OAuth 1.0。
* **verbosity**: 日誌的級別，從 1（最少）到 5（最高）。
* **version**: OAuth 版本。使用 OAuth 來授權請求。允許的值為 `Disabled`、`1.0` 和 `2.0`。預設值為 `Disabled`。

## 輸出屬性

* **cookie:\***: Cookie 隨回應傳回。
* **header:\***: 回應傳回的標頭檔案。
* **http:allcookies**: 回應中的所有 cookie，以單個字串形式傳回。
* **http:content**: HTTP 回應的內容。
* **http:statuscode**: 從請求傳回的 HTTP 狀態程式碼。
* **ssl:issuer**: TLS／SSL 憑證的頒發者。
* **ssl:subject**: TLS／SSL 憑證的主題。

## 範例

```xml theme={null}
<arc:set attr="http.URL" value="https://postman-echo.com/basic-auth" />
<!-- Adding an HTTP header to the GET request -->
<arc:set attr="http.header:name#1" value="mySpecialHeader" />
<arc:set attr="http.header:value#1"value="Foo" />
<!-- Setting the credentials via basic authentication -->
<arc:set attr="http.user" value="postman" />
<arc:set attr="http.password" value="password" />
<!-- Optional logging parameter. Useful when troubleshooting a request -->
<arc:set attr="http.logfile" value="/tmp/httpLog.txt" />
<arc:set attr="http.verbosity" value="3" />

<!-- Passing in the http input item to the call and setting the data of the output file to be the HTTP response -->
<arc:call op="httpGet" in="http" out="response">
  <arc:set attr="output.data" value="[response.http:content]" />
</arc:call>

<!-- Setting the output filename and pushing the file out -->
<arc:set attr="output.filename" value="httpResponseContent.txt" />
<arc:push item="output" />
```
