Curl 8 2 0

Author: f | 2025-04-24

★★★★☆ (4.7 / 2380 reviews)

screenrecorder

Wget/cURL alternative native to Windows? 4. HTTP responses curl and wget different results. 8. How to see HTTP request header by curl? 9. cURL: multiple POST requests while reusing the TCP connection. 2. curl capturing http status and timing the request. 6. cURL command runs in Linux but not Windows 2025. 0.

cut shortcut

curl: (92) HTTP/2 stream 0 was not closed cleanly:

Hi @bagderI am using curl with --http3-only option to download file from nginx server.From below curl man page and help page i came to know that using --http3 will allow to fall back ,--http3-only will not allow to fallback but seems to be with --http3-only also curl is falling back and using http1.1man curl:---http3-onlysion on its own. Use --http3 for similar functionality with a fallback.Instructs curl to use HTTP/3 to the host in the URL, with no fallback to earlier HTTP versions.This option will make curl fail if a QUIC connection cannot be established, it will not attempt any other HTTP version on its own --http3 Use --http3-only for similar functionality without a fallback.Tells curl to try HTTP/3 to the host in the URL, but fallback to earlier HTTP versions if the HTTP/3 connection establishment failscurl --help all :---http3 Use HTTP v3--http3-only Use HTTP v3 onlyroot@ubuntu:~# curl -# -v -k --http3-only -o index.html 127.0.0.1:443...Connected to 127.0.0.1 (127.0.0.1) port 443 (#0)ALPN: offers http/1.1} [5 bytes data]TLSv1.3 (OUT), TLS handshake, Client hello (1):} [512 bytes data]TLSv1.3 (IN), TLS handshake, Server hello (2):{ [88 bytes data]TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):} [1 bytes data]TLSv1.3 (OUT), TLS handshake, Client hello (1):} [512 bytes data]TLSv1.3 (IN), TLS handshake, Server hello (2):{ [155 bytes data]TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):{ [21 bytes data]TLSv1.3 (IN), TLS handshake, Certificate (11):{ [768 bytes data]TLSv1.3 (IN), TLS handshake, CERT verify (15):{ [264 bytes data]TLSv1.3 (IN), TLS handshake, Finished (20):{ [52 bytes data]TLSv1.3 (OUT), TLS handshake, Finished Wget/cURL alternative native to Windows? 4. HTTP responses curl and wget different results. 8. How to see HTTP request header by curl? 9. cURL: multiple POST requests while reusing the TCP connection. 2. curl capturing http status and timing the request. 6. cURL command runs in Linux but not Windows 2025. 0. NoticeThe URL of the result image is valid for 1 hour. Please download the image file promptly.Supported ImagesFormatResolutionFile sizejpg, jpeg, bmp, png, webp, tiff, tif, bitmap, raw, rgb, jfif, lzwUp to 4096 x 4096Up to 15MBGet StartedSee differences between the 3 API call types #Create a task.curl -k ' \-H 'X-API-KEY: YOUR_API_KEY' \-F 'sync=0' \-F 'image_url=YOU_IMG_URL'#Get the cutout result#Polling requests using the following methods 1. The polling interval is set to 1 second, 2. The polling time does not exceed 30 secondscurl -k ' \-H 'X-API-KEY: YOUR_API_KEY' \php//Create a task$curl = curl_init();curl_setopt($curl, CURLOPT_URL, ' CURLOPT_HTTPHEADER, array( "X-API-KEY: YOUR_API_KEY", "Content-Type: multipart/form-data",));curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_POSTFIELDS, array('sync' => 0, 'image_url' => "YOUR_IMG_URL"));$response = curl_exec($curl);$result = curl_errno($curl) ? curl_error($curl) : $response;curl_close($curl);$result = json_decode($result, true);if ( !isset($result["status"]) || $result["status"] != 200 ) { // request failed, log the details var_dump($result); die("post request failed");}// var_dump($result);$task_id = $result["data"]["task_id"];//get the task result// 1、"The polling interval is set to 1 second."//2 "The polling time is around 30 seconds."for ($i = 1; $i 30; $i++) { if ($i != 1) { sleep(1); } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, " curl_setopt($curl, CURLOPT_HTTPHEADER, array( "X-API-KEY: YOUR_API_KEY", )); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($curl); $result = curl_errno($curl) ? curl_error($curl) : $response; curl_close($curl); var_dump($result); $result = json_decode($result, true); if ( !isset($result["status"]) || $result["status"] != 200 ) { // Task exception, logging the error. //You can choose to continue the loop with 'continue' or break the loop with 'break' var_dump($result); continue; } if ( $result["data"]["state"] == 1 ) { // task success var_dump($result["data"]["image"]); break; } else if ( $result["data"]["state"] 0) { // request failed, log the details var_dump($result); break; } else { // Task processing if ($i == 30) { //Task processing, abnormal situation, seeking assistance from customer service of picwish } }}public static void main(String[] args) throws Exception { String taskId = createTask(); String result = pollingTaskResult(taskId, 0); System.out.println(result);}private static String createTask() throws Exception { OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("image_url", "IMAGE_HTTP_URL") .addFormDataPart("sync", "0") .build(); Request request = new Request.Builder() .url(" .addHeader("X-API-KEY", "YOUR_API_KEY") .post(requestBody) .build(); Response response = okHttpClient.newCall(request).execute(); JSONObject jsonObject = new JSONObject(response.body().string()); int status = jsonObject.optInt("status"); if (status != 200) { throw new Exception(jsonObject.optString("message")); } return jsonObject.getJSONObject("data").optString("task_id");}private static String pollingTaskResult(String taskId, int pollingTime) throws Exception { if (pollingTime >= 30) throw new IllegalStateException("Polling result timeout."); OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); Request taskRequest = new Request.Builder() .url(" + taskId) .addHeader("X-API-KEY", "YOUR_API_KEY") .get() .build(); Response taskResponse = okHttpClient.newCall(taskRequest).execute(); JSONObject jsonObject = new JSONObject(taskResponse.body().string()); int state = jsonObject.getJSONObject("data").optInt("state"); if (state 0) { // Error. throw new Exception(jsonObject.optString("message")); } if (state == 1) { // Success and get result. return jsonObject.getJSONObject("data").toString(); } Thread.sleep(1000); return pollingTaskResult(taskId, ++pollingTime);}const request = require("request");const fs = require("fs");const path = require('path')const API_KEY = "YOUR_API_KEY";(async function main() { const taskId = await createTask() const result = await polling(() => getTaskResult(taskId)) console.log(`result: ${JSON.stringify(result, null, 2)}`)})()const polling = async (fn, delay = 1 * 1000, timeout = 30 * 1000) => { if (!fn) { throw new Error('fn is required') } try

Comments

User6603

Hi @bagderI am using curl with --http3-only option to download file from nginx server.From below curl man page and help page i came to know that using --http3 will allow to fall back ,--http3-only will not allow to fallback but seems to be with --http3-only also curl is falling back and using http1.1man curl:---http3-onlysion on its own. Use --http3 for similar functionality with a fallback.Instructs curl to use HTTP/3 to the host in the URL, with no fallback to earlier HTTP versions.This option will make curl fail if a QUIC connection cannot be established, it will not attempt any other HTTP version on its own --http3 Use --http3-only for similar functionality without a fallback.Tells curl to try HTTP/3 to the host in the URL, but fallback to earlier HTTP versions if the HTTP/3 connection establishment failscurl --help all :---http3 Use HTTP v3--http3-only Use HTTP v3 onlyroot@ubuntu:~# curl -# -v -k --http3-only -o index.html 127.0.0.1:443...Connected to 127.0.0.1 (127.0.0.1) port 443 (#0)ALPN: offers http/1.1} [5 bytes data]TLSv1.3 (OUT), TLS handshake, Client hello (1):} [512 bytes data]TLSv1.3 (IN), TLS handshake, Server hello (2):{ [88 bytes data]TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):} [1 bytes data]TLSv1.3 (OUT), TLS handshake, Client hello (1):} [512 bytes data]TLSv1.3 (IN), TLS handshake, Server hello (2):{ [155 bytes data]TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):{ [21 bytes data]TLSv1.3 (IN), TLS handshake, Certificate (11):{ [768 bytes data]TLSv1.3 (IN), TLS handshake, CERT verify (15):{ [264 bytes data]TLSv1.3 (IN), TLS handshake, Finished (20):{ [52 bytes data]TLSv1.3 (OUT), TLS handshake, Finished

2025-03-25
User6041

NoticeThe URL of the result image is valid for 1 hour. Please download the image file promptly.Supported ImagesFormatResolutionFile sizejpg, jpeg, bmp, png, webp, tiff, tif, bitmap, raw, rgb, jfif, lzwUp to 4096 x 4096Up to 15MBGet StartedSee differences between the 3 API call types #Create a task.curl -k ' \-H 'X-API-KEY: YOUR_API_KEY' \-F 'sync=0' \-F 'image_url=YOU_IMG_URL'#Get the cutout result#Polling requests using the following methods 1. The polling interval is set to 1 second, 2. The polling time does not exceed 30 secondscurl -k ' \-H 'X-API-KEY: YOUR_API_KEY' \php//Create a task$curl = curl_init();curl_setopt($curl, CURLOPT_URL, ' CURLOPT_HTTPHEADER, array( "X-API-KEY: YOUR_API_KEY", "Content-Type: multipart/form-data",));curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_POSTFIELDS, array('sync' => 0, 'image_url' => "YOUR_IMG_URL"));$response = curl_exec($curl);$result = curl_errno($curl) ? curl_error($curl) : $response;curl_close($curl);$result = json_decode($result, true);if ( !isset($result["status"]) || $result["status"] != 200 ) { // request failed, log the details var_dump($result); die("post request failed");}// var_dump($result);$task_id = $result["data"]["task_id"];//get the task result// 1、"The polling interval is set to 1 second."//2 "The polling time is around 30 seconds."for ($i = 1; $i 30; $i++) { if ($i != 1) { sleep(1); } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, " curl_setopt($curl, CURLOPT_HTTPHEADER, array( "X-API-KEY: YOUR_API_KEY", )); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($curl); $result = curl_errno($curl) ? curl_error($curl) : $response; curl_close($curl); var_dump($result); $result = json_decode($result, true); if ( !isset($result["status"]) || $result["status"] != 200 ) { // Task exception, logging the error. //You can choose to continue the loop with 'continue' or break the loop with 'break' var_dump($result); continue; } if ( $result["data"]["state"] == 1 ) { // task success var_dump($result["data"]["image"]); break; } else if ( $result["data"]["state"] 0) { // request failed, log the details var_dump($result); break; } else { // Task processing if ($i == 30) { //Task processing, abnormal situation, seeking assistance from customer service of picwish } }}public static void main(String[] args) throws Exception { String taskId = createTask(); String result = pollingTaskResult(taskId, 0); System.out.println(result);}private static String createTask() throws Exception { OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("image_url", "IMAGE_HTTP_URL") .addFormDataPart("sync", "0") .build(); Request request = new Request.Builder() .url(" .addHeader("X-API-KEY", "YOUR_API_KEY") .post(requestBody) .build(); Response response = okHttpClient.newCall(request).execute(); JSONObject jsonObject = new JSONObject(response.body().string()); int status = jsonObject.optInt("status"); if (status != 200) { throw new Exception(jsonObject.optString("message")); } return jsonObject.getJSONObject("data").optString("task_id");}private static String pollingTaskResult(String taskId, int pollingTime) throws Exception { if (pollingTime >= 30) throw new IllegalStateException("Polling result timeout."); OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); Request taskRequest = new Request.Builder() .url(" + taskId) .addHeader("X-API-KEY", "YOUR_API_KEY") .get() .build(); Response taskResponse = okHttpClient.newCall(taskRequest).execute(); JSONObject jsonObject = new JSONObject(taskResponse.body().string()); int state = jsonObject.getJSONObject("data").optInt("state"); if (state 0) { // Error. throw new Exception(jsonObject.optString("message")); } if (state == 1) { // Success and get result. return jsonObject.getJSONObject("data").toString(); } Thread.sleep(1000); return pollingTaskResult(taskId, ++pollingTime);}const request = require("request");const fs = require("fs");const path = require('path')const API_KEY = "YOUR_API_KEY";(async function main() { const taskId = await createTask() const result = await polling(() => getTaskResult(taskId)) console.log(`result: ${JSON.stringify(result, null, 2)}`)})()const polling = async (fn, delay = 1 * 1000, timeout = 30 * 1000) => { if (!fn) { throw new Error('fn is required') } try

2025-04-14
User3677

`json:"task_id"` Image string `json:"image"` ReturnType uint `json:"return_type"` Type string `json:"type"` Progress uint `json:"progress"` //不确定有没有,需要查询看看 State int `json:"state"` TimeElapsed float64 `json:"time_elapsed"` } `json:"data"`}func main() { // JSON data is passed and received here, and code modification is required. jsonData := `{ "status": 200, "message": "Success", "data": { "task_id": "123456", "image": "image_data", } }` // Parse JSON data into VisualScaleResponse struct var response VisualScaleResponse err := json.Unmarshal([]byte(jsonData), &response) if err != nil { fmt.Println("Error parsing JSON:", err) return } // Query the relevant content in the database based on the taskID and associate it with the image below. fmt.Println("Image:", response.Data.TaskId) // Print the 'image' field fmt.Println("Image:", response.Data.Image)} #Create a taskcurl -k ' \-H 'X-API-KEY: YOUR_API_KEY' \-F 'sync=0' \-F 'image_file=@/path/to/image.jpg'#Get the cutout result#Polling requests using the following methods 1. The polling interval is set to 1 second, 2. The polling time does not exceed 30 secondscurl -k ' \-H 'X-API-KEY: YOUR_API_KEY' \php//Create a task$curl = curl_init();curl_setopt($curl, CURLOPT_URL, ' CURLOPT_HTTPHEADER, array( "X-API-KEY: YOUR_API_KEY", "Content-Type: multipart/form-data",));curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_POSTFIELDS, array('sync' => 0, 'image_file' => new CURLFILE("/path/to/image.jpg")));$response = curl_exec($curl);$result = curl_errno($curl) ? curl_error($curl) : $response;curl_close($curl);$result = json_decode($result, true);if ( !isset($result["status"]) || $result["status"] != 200 ) { // request failed, log the details var_dump($result); die("post request failed");}// var_dump($result);$task_id = $result["data"]["task_id"];//get the task result// 1、"The polling interval is set to 1 second."//2 "The polling time is around 30 seconds."for ($i = 1; $i 30; $i++) { if ($i != 1) { sleep(1); } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, " curl_setopt($curl, CURLOPT_HTTPHEADER, array( "X-API-KEY: YOUR_API_KEY", )); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($curl); $result = curl_errno($curl) ? curl_error($curl) : $response; curl_close($curl); var_dump($result); $result = json_decode($result, true); if ( !isset($result["status"]) || $result["status"] != 200 ) { // Task exception, logging the error. //You can choose to continue the loop with 'continue' or break the loop with 'break' var_dump($result); continue; } if ( $result["data"]["state"] == 1 ) { // task success var_dump($result["data"]["image"]); break; } else if ( $result["data"]["state"] 0) { // request failed, log the details var_dump($result); break; } else { // Task processing if ($i == 30) { //Task processing, abnormal situation, seeking assistance from customer service of picwish } }}public static void main(String[] args) throws Exception { String taskId = createTask(); String result = pollingTaskResult(taskId, 0); System.out.println(result);}private static String createTask() throws Exception { OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("image_file", JPG_FILE_NAME, RequestBody.create({JPG_FILE}, MediaType.parse("image/jpeg"))) .addFormDataPart("sync", "0") .build(); Request request = new Request.Builder() .url(" .addHeader("X-API-KEY", "YOUR_API_KEY") .post(requestBody) .build(); Response response = okHttpClient.newCall(request).execute(); JSONObject jsonObject = new JSONObject(response.body().string()); int status = jsonObject.optInt("status"); if (status != 200) { throw new Exception(jsonObject.optString("message")); } return jsonObject.getJSONObject("data").optString("task_id");}private static String pollingTaskResult(String taskId, int pollingTime) throws Exception { if (pollingTime >= 30) throw new IllegalStateException("Polling result timeout."); OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); Request taskRequest = new Request.Builder() .url(" + taskId) .addHeader("X-API-KEY", "YOUR_API_KEY") .get() .build(); Response taskResponse = okHttpClient.newCall(taskRequest).execute(); JSONObject jsonObject = new JSONObject(taskResponse.body().string()); int state = jsonObject.getJSONObject("data").optInt("state"); if (state 0) { // Error. throw new Exception(jsonObject.optString("message")); } if (state == 1) { // Success and get result.

2025-04-17
User7969

Curl - Linux, Mac OS X, BSD Use of the API requires authentication with your API key. Your key is displayed in the right column in your dashboard. If you do not yet have an account, please register for a free account. The simple API makes it easy to requests and retrieve screenshots with curl. Browshot will send 302 redirections, so you need to use the -L option to follow them. To request a screenshot of the website with the default option, and save the image to /tmp/mobilito.png, use: $ curl -L " -o /tmp/mobilito.png % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 188k 100 188k 0 0 5692 0 0:00:33 0:00:33 --:--:-- 118k$ file /tmp/mobilito.png/tmp/mobilito.png: PNG image data, 1024 x 768, 8-bit/color RGB, non-interlaced You can use any of the options listed on the API page to get thumbnails of different sizes, to use different browsers, etc. Here are some common use cases: Full page By default, the screenshot of the screen is taken. To take a screenshot of the full page, add size=page: $ curl -L " -o /tmp/mobilito.png Thumbnail To have a thumbnail with a width of 640 pixels, same as ratio as the original browser, add the parameter width=640 to the URL: $ curl -L " -o /tmp/mobilito.png You can also choose to specify both the width and height for the thumbnail: $ curl -L " -o /tmp/mobilito.png Choose a virtual browser Browshot offers a large choice of Mobile browsers (iPhone, iPad, Android, etc.) and Desktop resolutions (60x480 to 1920x1200). You can pick the browser to use for the screenshots from you dashboard or you can get the list in a programmatic manner from the API. For example, to create a screenshot of from a virtual iPhone4 held vertically, pick the instance #22: $ curl -L " -o /tmp/mobilito.png Another way to pick up a virtual browser is to specify the screen resolution, for example screen=1024x768: $ curl -L " -o /tmp/mobilito.png All the options can be combined. You can get the full list on the API page.

2025-04-14
User4317

Sending response to the web API method scriptExecutionTimeoutS (default: "50") - specifies CallXML script execution timeout, in seconds Other parameters into CallXML variables CURL example 1: curl -uadmin:admin --digest -X POST -d "@my_file.xml" -H "Content-Type: text/plain;charset=UTF-8" -H "Referer: CURL example 2: curl -uadmin:XYZ --digest -X POST --data-binary "@yyy.xml" -H "Content-Type:text/plain;charset=UTF-8" -H "Referer: content of the xml script file: SUBSCRIBE sip:[email protected]:5062 SIP/2.0Via: SIP/2.0/UDP x.x.x.x:5070;branch=z9hG4bK13054182From: blf_subscriber00001 ;tag=1641318497To: Call-ID: 0_2505407707_bogusCSeq: 1 SUBSCRIBEContact: Accept: application/reginfo+xmlMax-Forwards: 70User-Agent: Yealink SIP-T21P_E2 52.80.0.95Expires: 300Event: dialogContent-Length: 0]]> Example of calling web API in HTML using AJAX: Click-To-Call HTML button POST /API/MainViewModel/CreateCalls_Post - starts call generator specific to the API request, generates multiple outgoing calls using uploaded script. Returns Call-ID SIP header of the first created SIP call in JSON format: {'status': 'OK', 'sipCallId': 'the_new_call_id'}. URL query parameters are: maxCPS, intervalMs, intervalMsL, intervalMsH, maxConcurrentCalls, maxCallsToAttempt, callsPerTick. Other URL query parameters are passed into CallXML variables. The API method passes variable 'apiSequenceNumber' into the scripts, it means zero-based counter of executed scripts. CURL example: curl -uadmin:admin --digest -X POST -d "@my_file.xml" -H "Content-Type:text/plain;charset=UTF-8" GET /API/MainViewModel/CreateSingleCallCommand - creates an outgoing call using currently pre-configured script GET /API/MainViewModel/CurrentCallExists?callerId=XXX&calledId=YYY - checks existence of current call, returns 'true' or 'false' GET /API/MainViewModel/DestroyCall?[sipCallId=XXX][&calledId=YYYY][&calledIdSuffix=ZZZZ] - destroys current SIP call(s) with specified parameters: sipCallId - SIP Call-ID header of the destroyed call(s) calledId - CLD (B number) of the destroyed call(s) calledIdSuffix - CLD (B number) suffix of the destroyed call(s) - this parameter omits tech. prefix GET /DownloadRecordedFile?sipCallId=xxxx&fileId=mixed - downloads recorded WAV or PCAP file from a specific call Parameters: sipCallId - Call-ID header of the SIP call, used to identify the SIP call fileId (rx/tx/mixed) - type of recorded audio file. For audio wav files: "rx" - received RTP audio stream, "tx" - transmitted RTP audio stream, "mixed" - mix or received and transmitted RTP audio

2025-03-27
User5245

目录 文章目录 目录 编译安装 YUM 升级 curl 常用选项 编译安装安��编译环境:yum -y groupinstall "Development Tools"yum -y install libev libev-devel zlib zlib-devel openssl openssl-devel git 1 2 安装 OpenSSL:mkdir /var/tmpcd /var/tmpwget -zxf openssl-1.0.2.tar.gzcd openssl-1.0.2mkdir /opt/openssl./config --prefix=/opt/opensslmakemake testmake install 1 2 3 4 5 6 7 8 9 10 安装 nghttp2:git clone nghttp2autoreconf -iautomakeautoconf./configuremakemake installecho '/usr/local/lib' > /etc/ld.so.conf.d/custom-libs.confldconfigldconfig -p| grep libnghttp2 1 2 3 4 5 6 7 8 9 10 11 安装 curl:cd /var/tmpgit clone curl./buildconf./configure --with-ssl=/opt/openssl --with-nghttp2=/usr/local --disable-file --without-pic --disable-sharedmake 1 2 3 4 5 6 验证:$ /var/tmp/curl/src/curl --versioncurl 7.70.0-DEV (x86_64-unknown-linux-gnu) libcurl/7.70.0-DEV OpenSSL/1.0.2o nghttp2/1.41.0-DEVRelease-Date: [unreleased]Protocols: dict ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftpFeatures: AsynchDNS HTTP2 HTTPS-proxy IPv6 Largefile NTLM NTLM_WB SSL TLS-SRP UnixSockets 1 2 3 4 5 注意:curl 从 7.52.0 版本开始也已经支持 TLS 1.3 了,curl 7.61.0 及以上在 TLS 握手过程中协商 TLS 版本时,curl 默认使用 TLS 1.3,但也取决于 curl 正在使用的 TLS 库及其版本,例如:要求 OpenSSL 1.1.1 版本以上。YUM 升级安装新版 libcurl 的 yum 源:rpm -ivh 1 升级:yum upgrade libcurl 1 升级完成后可以卸载此 yum 源:rpm -e city-fan.org-release 1 curl 常用选项语法格式: curl [options] [URL...]常用选项如下所示: -A/--user-agent : 设置用户代理发送给服务器 -e/--referer : 来源网址 --cacert : CA 证书(SSL) -k/--insecure: 允许忽略证书进行 SSL 连接 --compressed: 要求返回是压缩的格式 -H/--header : 自定义首部信息传递给服务器 -i: 显示页面内容,包括报文首部信息 -I/--head: 只显示响应报文首部信息 -D/--dump-header : 将 URL 的 header 信息存放在指定文件中 --basic: 使用 HTTP 基本认证 -u/--user : 设置服务器的用户和密码 -L: 如果有 3xx 响应码,重新发请求到新位置 -O: 使用 URL 中默认的文件名保存文件到本地 -o : 将网络文件保存为指定的文件中 --limit-rate : 设置传输速度 -0/--http1.0: 数字 0,使用 HTTP 1.0 -v/--verbose: 更详细 -C: 选项可对文件使用断点续传功能 -c/--cookie-jar : 将 URL 中 Cookie 存放在指定文件中 -x/--proxy : 指定代理服务器地址 -X/--request : 向服务器发送指定请求方法 -U/--proxy-user : 代理服务器用户和密码 -T: 选项可将指定的本地文件上传到 FTP 服务器上 --data/-d: 方式指定使用 POST 方式传递数据 -b name=data: 从服务器响应 set-cookie 得到值,返回给服务器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 文章来源: is-cloud.blog.csdn.net,作者:范桂飓,版权归原作者所有,如需转载,请联系作者。原文链接:is-cloud.blog.csdn.net/article/details/105695093 【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: [email protected]

2025-04-03

Add Comment