2012-02-24 38 views
6

Xin giải thích lệnh này curl:cURL - - tiêu hóa lệnh

curl --digest \ 
    -u{username}:{password} \ 
    -v \ 
    -X PUT \ 
    -H 'Expect: ' \ 
    -H 'Content-type: application/xml' \ 
    -d @- \ 
    http://webapi.ebayclassifieds.com/webapi/partners/{username}/ads/{ext-reference-id} \ 
     < ad.xml 

không dấu < nghĩa là gì?

Những gì tôi hiểu:

[--digest] its a digest authentication 
[-u{username}:{password}] obviously username and password 
[-X PUT] method="put" 
[-H 'Expect: '] header = 'Expect: ' 
[-H 'Content-type: application/xml'] additional header 

Đây có lẽ là những gì tôi không nhận được -d @ - url < ad.xml [-d @ - http://webapi.ebayclassifieds.com/webapi/partners/ {username}/ads/{ext-tài liệu tham khảo -ID} < ad.xml]

Những gì tôi thấy:

-d, --data

(HTTP) Gửi dữ liệu được chỉ định trong yêu cầu POST tới máy chủ HTTP, giống như cách trình duyệt thực hiện khi người dùng điền vào biểu mẫu HTML và nhấn nút gửi. Điều này sẽ khiến cho curl chuyển dữ liệu đến máy chủ bằng cách sử dụng loại nội dung ứng dụng/x-www-form-urlencoded. So sánh với -F, --form.

-d, --data giống như --data-ascii. Để đăng dữ liệu thuần túy, bạn nên sử dụng tùy chọn --data-binary. Để mã hóa URL giá trị của trường biểu mẫu, bạn có thể sử dụng --data-urlencode.

Nếu bất kỳ tùy chọn nào trong số này được sử dụng nhiều lần trên cùng dòng lệnh , các phần dữ liệu được chỉ định sẽ được hợp nhất cùng với tách &-đa điểm. Do đó, bằng cách sử dụng '-d name = daniel -d skill = lousy' sẽ tạo một đoạn đăng trông giống như 'name = daniel & skill = lousy'.

Nếu bạn bắt đầu dữ liệu bằng chữ cái @, phần còn lại phải là tệp tên để đọc dữ liệu từ hoặc - nếu bạn muốn cuộn tròn để đọc dữ liệu từ stdin. Nội dung của tệp phải được mã hóa URL. Nhiều tệp cũng có thể được chỉ định. Việc đăng dữ liệu từ một tệp có tên là 'foobar' do đó sẽ được thực hiện với --data @foobar.

Câu hỏi hàng đầu: Nếu ai đó biết cách dịch từ ngữ này sang cfhttp, đừng quên xác thực thông báo và giả định yêu cầu đang làm việc với xác thực thông báo.

+0

tại sao thẻ này được gắn thẻ là coldfusion? –

+0

@Giống như trong câu hỏi hàng đầu tôi đã đề cập đến cfhttp. – Vlad

Trả lời

1

Tùy chọn "-d @ -" có nghĩa là curl sẽ gửi yêu cầu POST với dữ liệu mà nó đọc từ stdin.

Toán tử '<' yêu cầu trình bao cấp tệp vào tệp chuẩn.

Bạn có thể tạo một dòng lệnh đơn giản hơn bằng cách thay vì thực hiện -d @ ad.xml và không sử dụng stdin chút nào.

+1

Trong thuật ngữ cf, bạn có thể đăng chuỗi xml bằng cách sử dụng '' – Leigh

Các vấn đề liên quan