2012-10-04 30 views
42

Tôi đang cố gắng để thực hiện một yêu cầu sử dụng CURL như thế này:DELETE sử dụng CURL với URL được mã hóa

curl -X DELETE "https://myhost/context/path/users/OXYugGKg207g5uN/07V" 

nơi OXYugGKg207g5uN/07V là một hash, vì vậy tôi nghĩ rằng tôi cần phải mã hóa trước khi làm theo yêu cầu này.

Tôi đã thử curl -X DELETE --data-urlenconded "https://myhost/context/path/users/OXYugGKg207g5uN/07V"

Một số ý tưởng?

+2

Máy chủ có nhận được yêu cầu không? Có vẻ như bạn đang mã hóa URL toàn bộ URL ... URL này sẽ tạo URL không sử dụng được. – shortstuffsushi

+0

Bạn có thực sự thử '--data-urlenconded'? Chính tả chính xác này có thể giúp bạn. – TRiG

Trả lời

10

Nếu thực sự OXYugGKg207g5uN/07V là băm thì bạn cần phải mã hóa, chứ không phải toàn bộ url. Bạn có thể sử dụng một chức năng mã hóa có sẵn trong môi trường bạn sử dụng cURL trong.

+0

Im trên tập lệnh bash. Bạn có một số ví dụ? – coffee

+0

http://stackoverflow.com/questions/296536/urlencode-from-a-bash-script – arkascha

13

Hãy thử điều này

curl -X DELETE "https://myhost/context/path/users/$(echo -ne "OXYugGKg207g5uN/07V" | xxd -plain | tr -d '\n' | sed 's/\(..\)/%\1/g')" 

Đó là equivilent để

curl -X DELETE "https://myhost/context/path/users/%4f%58%59%75%67%47%4b%67%32%30%37%67%35%75%4e%2f%30%37%56" 

Ở đây, mỗi nhân vật được thay thế bằng respresentation byte của nó. .. Tôi không nghĩ rằng nó đặc biệt đẹp, nhưng nó hoạt động.

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