คำถามติดแท็ก curl

cURL เป็นเครื่องมือไลบรารีและบรรทัดคำสั่งสำหรับถ่ายโอนข้อมูลโดยใช้โปรโตคอลต่าง ๆ เช่น HTTP, FTP และ SFTP โครงการ cURL สร้างผลิตภัณฑ์สองรายการคือ libcurl และ curl แท็กนี้ครอบคลุมการใช้งานทั้งหมดของ cURL ไม่ว่าจะใช้ผลิตภัณฑ์ cURL ใด





4
PHP cURL ส่วนหัวที่กำหนดเอง
ฉันสงสัยว่า / วิธีที่คุณสามารถเพิ่มส่วนหัวที่กำหนดเองในคำขอ cURL HTTP ใน PHP ฉันพยายามเลียนแบบวิธีการที่ iTunes คว้างานศิลปะและใช้ส่วนหัวที่ไม่ได้มาตรฐานเหล่านี้: X-Apple-Tz: 0 X-Apple-Store-Front: 143444,12 ฉันจะเพิ่มส่วนหัวเหล่านี้ในคำขอได้อย่างไร
376 php  curl 

4
ฉันจะเชื่อมต่อกับบริการที่ซ่อนของ Tor โดยใช้ cURL ใน PHP ได้อย่างไร
ล็อคแล้ว ความคิดเห็นเกี่ยวกับคำถามนี้ถูกปิดใช้งาน แต่ยังคงยอมรับคำตอบใหม่และการโต้ตอบอื่น ๆ เรียนรู้เพิ่มเติม ฉันกำลังพยายามเชื่อมต่อกับบริการที่ซ่อนอยู่ของ Tor โดยใช้รหัส PHP ต่อไปนี้: $url = 'http://jhiwjjlqpyawmpjx.onion/' $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_PROXY, "http://127.0.0.1:9050/"); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); $output = curl_exec($ch); $curl_error = curl_error($ch); curl_close($ch); print_r($output); print_r($curl_error); เมื่อฉันเรียกใช้ฉันได้รับข้อผิดพลาดต่อไปนี้: ไม่สามารถแก้ไขชื่อโฮสต์ อย่างไรก็ตามเมื่อฉันเรียกใช้คำสั่งต่อไปนี้จากบรรทัดคำสั่งของฉันใน Ubuntu: curl -v --socks5-hostname localhost:9050 http://jhiwjjlqpyawmpjx.onion ฉันได้รับการตอบสนองตามที่คาดไว้ เอกสารcURL PHP บอกสิ่งนี้: …
366 php  curl  proxy  tor 

30
วิธีการ urlencode ข้อมูลสำหรับคำสั่ง curl
ฉันพยายามเขียน bash script สำหรับการทดสอบที่รับพารามิเตอร์และส่งผ่านทาง curl ไปยังเว็บไซต์ ฉันจำเป็นต้องเข้ารหัสค่าเพื่อให้แน่ใจว่ามีการประมวลผลอักขระพิเศษอย่างถูกต้อง วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? นี่คือสคริปต์พื้นฐานของฉันจนถึง: #!/bin/bash host=${1:?'bad host'} value=$2 shift shift curl -v -d "param=${value}" http://${host}/somepath $@

13
PHP cURL สามารถดึงส่วนหัวการตอบสนองและเนื้อหาในคำขอเดียวได้หรือไม่?
มีวิธีใดที่จะได้ทั้งส่วนหัวและเนื้อหาสำหรับคำขอ cURL โดยใช้ PHP? ฉันพบว่าตัวเลือกนี้: curl_setopt($ch, CURLOPT_HEADER, true); กำลังจะส่งคืนร่างกายพร้อมส่วนหัวแต่จากนั้นฉันต้องแยกวิเคราะห์เพื่อให้ได้ร่างกาย มีวิธีใดบ้างที่จะนำทั้งสองอย่างมาใช้ (และปลอดภัย) ได้มากกว่าเดิม? โปรดทราบว่าสำหรับ "คำขอเดียว" ฉันหมายถึงการหลีกเลี่ยงการออกคำขอ HEAD ก่อน GET / POST
314 php  http  curl 

30
wget / curl ไฟล์ขนาดใหญ่จาก google ไดรฟ์
ฉันพยายามดาวน์โหลดไฟล์จาก google ไดรฟ์ในสคริปต์และฉันมีปัญหาเล็กน้อยในการทำเช่นนั้น ไฟล์ที่ฉันพยายามที่จะดาวน์โหลดได้ที่นี่ ฉันดูออนไลน์อย่างกว้างขวางและในที่สุดฉันก็สามารถดาวน์โหลดหนึ่งไฟล์ได้ ฉันได้รับ UID ของไฟล์และดาวน์โหลดที่เล็กกว่า (1.6MB) ได้ดี แต่ไฟล์ที่ใหญ่กว่า (3.7GB) จะเปลี่ยนเส้นทางไปยังหน้าเว็บที่ถามฉันเสมอว่าฉันต้องการดำเนินการดาวน์โหลดต่อโดยไม่สแกนไวรัสหรือไม่ มีคนช่วยฉันผ่านหน้าจอนั้นได้ไหม นี่คือวิธีที่ฉันได้ไฟล์แรกทำงาน - curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYeDU0VDRFWG9IVUE" > phlat-1.0.tar.gz เมื่อฉันเรียกใช้ไฟล์เดียวกันในอีกไฟล์ curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM" > index4phlat.tar.gz ฉันได้รับผลลัพธ์ต่อไปนี้ - ฉันสังเกตเห็นว่าบรรทัดที่สามถึงสุดท้ายในลิงค์มี&confirm=JwkKสตริงตัวอักษร 4 ตัวแบบสุ่ม แต่แนะนำว่ามีวิธีเพิ่มการยืนยันใน URL ของฉัน ลิงก์ใดลิงก์หนึ่งที่ฉันเยี่ยมชมแนะนำ&confirm=no_antivirusแต่นั่นไม่ทำงาน ฉันหวังว่าบางคนที่นี่สามารถช่วยได้!

2
การส่ง URL ด้วยเครื่องหมายวงเล็บไปยัง curl
หากฉันพยายามส่ง URL ไปยัง curl ที่มีเครื่องหมายวงเล็บมันจะล้มเหลวโดยมีข้อผิดพลาด: $ curl 'http://www.google.com/?TEST[]=1' curl: (3) [globbing] illegal character in range specification at pos 29 อย่างไรก็ตามหากฉันหลีกเลี่ยงวงเล็บทั้งสองมันจะทำงานได้: $ curl 'http://www.google.com/?TEST\[\]=1' น่าสนใจฉันใช้แบ็กสแลชเพื่อหลบหนีเฉพาะวงเล็บแรกที่ล้มเหลวอย่างเงียบ ๆ ด้วยรหัสข้อผิดพลาด 20497: $ curl 'http://www.google.com/?TEST\[]=1' $ echo $! 20497 คำถามของฉันคือวิธีแก้ไขปัญหานี้สำหรับกรณีทั่วไปหรือไม่ มีอาร์กิวเมนต์ที่จะหนี URL โดยอัตโนมัติหรือคำอธิบายของตัวละครที่ต้องหลบหนีก่อนที่จะผ่านไปขด
305 url  curl 


4
วิธีใช้ cURL เพื่อส่งคุกกี้
ฉันอ่านแล้วว่าส่งคุกกี้ด้วย curlใช้ได้ แต่ไม่ใช่สำหรับฉัน ฉันมีRESTจุดสิ้นสุดเป็น: class LoginResource(restful.Resource): def get(self): print(session) if 'USER_TOKEN' in session: return 'OK' return 'not authorized', 401 เมื่อฉันพยายามเข้าถึงเป็น: curl -v -b ~/Downloads/cookies.txt -c ~/Downloads/cookies.txt http://127.0.0.1:5000/ * About to connect() to 127.0.0.1 port 5000 (#0) * Trying 127.0.0.1... * connected * Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0) > …

15
ไม่สามารถแก้ไข“ ไม่สามารถรับใบรับรองผู้ออกในท้องถิ่น” โดยใช้ git บน Windows ด้วยใบรับรองที่ลงชื่อด้วยตนเอง
ฉันใช้ Git บน Windows ฉันติดตั้งแพ็คเกจ msysGit ที่เก็บการทดสอบของฉันมีใบรับรองแบบลงนามด้วยตนเองที่เซิร์ฟเวอร์ ฉันสามารถเข้าถึงและใช้พื้นที่เก็บข้อมูลโดยใช้ HTTP โดยไม่มีปัญหา การย้ายไปที่ HTTPS ทำให้เกิดข้อผิดพลาด: ปัญหาใบรับรอง SSL: ไม่สามารถรับใบรับรองผู้ออกในท้องถิ่น ฉันมีใบรับรองแบบลงนามด้วยตนเองติดตั้งใน Trusted Root Certificate Authorities ของ Windows 7 ของฉัน - เครื่องไคลเอ็นต์ ฉันสามารถเรียกดู URL ที่เก็บ HTTPS ใน Internet Explorer โดยไม่มีข้อความแสดงข้อผิดพลาด บล็อกโพสต์นี้โดย Philip Kelleyอธิบายว่า cURL ไม่ได้ใช้ที่เก็บใบรับรองของเครื่องไคลเอนต์ ฉันทำตามคำแนะนำของบล็อกโพสต์เพื่อสร้างสำเนาส่วนตัวของcurl-ca-bundle.crtและกำหนดค่า Git ให้ใช้ ฉันแน่ใจว่า Git ใช้สำเนาของฉัน หากฉันเปลี่ยนชื่อสำเนา Git บ่นไฟล์หายไป ฉันวางในใบรับรองของฉันตามที่กล่าวไว้ในโพสต์บล็อกฉันยังคงได้รับข้อความ …

14
JSONDecodeError: ค่าที่ต้องการ: บรรทัด 1 คอลัมน์ 1 (ถ่าน 0)
ฉันได้รับข้อผิดพลาดExpecting value: line 1 column 1 (char 0)เมื่อพยายามถอดรหัส JSON URL ที่ฉันใช้สำหรับการเรียก API นั้นทำงานได้ดีในเบราว์เซอร์ แต่ให้ข้อผิดพลาดนี้เมื่อดำเนินการผ่านคำขอ curl ต่อไปนี้เป็นรหัสที่ฉันใช้สำหรับคำขอ curl ข้อผิดพลาดเกิดขึ้นที่ return simplejson.loads(response_json) response_json = self.web_fetch(url) response_json = response_json.decode('utf-8') return json.loads(response_json) def web_fetch(self, url): buffer = StringIO() curl = pycurl.Curl() curl.setopt(curl.URL, url) curl.setopt(curl.TIMEOUT, self.timeout) curl.setopt(curl.WRITEFUNCTION, buffer.write) curl.perform() curl.close() response = buffer.getvalue().strip() return response …
259 python  json  api  curl 

25
curl: (60) ปัญหาใบรับรอง SSL: ไม่สามารถรับใบรับรองผู้ออกในท้องถิ่น
root@sclrdev:/home/sclr/certs/FreshCerts# curl --ftp-ssl --verbose ftp://{abc}/ -u trup:trup --cacert /etc/ssl/certs/ca-certificates.crt * About to connect() to {abc} port 21 (#0) * Trying {abc}... * Connected to {abc} ({abc}) port 21 (#0) < 220-Cerberus FTP Server - Home Edition < 220-This is the UNLICENSED Home Edition and may be used for home, personal …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.