2013-07-17 33 views
37

Tôi muốn sử dụng wget để tải ảnh lên máy chủ ở xa, sử dụng mã thông báo xác thực: 'AUTH_1624582364932749DFHDD' vào thư mục 'test'.Đăng yêu cầu với Wget?

lệnh này không làm việc (Authorization thất bại) và tôi muốn chắc chắn rằng nó không phải về cú pháp:

wget --post-file=nature.jpg http://ipadress:8080/v1/AUTH_test/test/ --post-data="AUTH_1624582364932749DFHDD" 

Bất kỳ lời đề nghị?

Trả lời

54

man wget nói:

Chỉ có một trong --Quảng cáo sau dữ liệu và --Quảng cáo sau tập tin nên được chỉ định.

Đoạn đầy đủ là:

--post-data=string 
     --post-file=file 
      Use POST as the method for all HTTP requests and send the specified data 
      in the request body. --post-data sends string as data, whereas 
      --post-file sends the contents of file. Other than that, they work in 
      exactly the same way. In particular, they both expect content of the 
      form "key1=value1&key2=value2", with percent-encoding for special 
      characters; the only difference is that one expects its content as a 
      command-line parameter and the other accepts its content from a file. In 
      particular, --post-file is not for transmitting files as form 
      attachments: those must appear as "key=value" data (with appropriate 
      percent-coding) just like everything else. Wget does not currently 
      support "multipart/form-data" for transmitting POST data; only 
      "application/x-www-form-urlencoded". Only one of --post-data and 
      --post-file should be specified. 

Đặc biệt nó nói:

--Quảng cáo sau tập tin không phải là để truyền các file đính kèm dạng: những phải xuất hiện như "chìa khóa = value "data

Chỉnh sửa: Bạn phải hiểu nguyên tắc dữ liệu "khóa = giá trị". Trong yêu cầu POST, như trong yêu cầu GET, bạn phải chỉ định dữ liệu bằng cách sử dụng các khóa và giá trị. Bằng cách này, máy chủ sẽ có thể nhận được nhiều thông tin với các tên cụ thể. Nó tương tự với các biến.

Do đó, bạn không thể chỉ gửi mã thông báo ma thuật cho máy chủ, bạn cũng cần chỉ định tên của khóa. Nếu khóa là "mã thông báo", thì nó phải là token=YOUR_TOKEN.

Ngoài ra, bạn nên cân nhắc sử dụng curl nếu có thể vì việc gửi tệp bằng cách sử dụng nó dễ dàng hơn. Có rất nhiều ví dụ trên Internet cho điều đó.

+0

Tôi làm cách nào để gửi mã thông báo xác thực trong trường hợp này? – Dady

+0

Nếu đó là một dạng html cơ bản, bạn sẽ đặt tên cho đầu vào có chứa mã thông báo như thế nào? Vì đó phải là: token = AUTH_1624582364932749DFHDD –

+0

@Dady: Sử dụng 'curl'? – Hasturkun

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