2009-09-18 8 views
1

私は数時間頭痛を覚えました。カールを使って自分のツイッターアカウントでtwitpicに画像を投稿しようとしています。シンボルを含むマルチパート/フォームデータを投稿するには

 
curl -F "username=myusername" -F "password=='hwsh[g" -F "message=test twitpic" -F [email protected]/dos/smallapps2/smallapps/tiny-delicious/snapshot/test.png http://twitpic.com/api/uploadAndPost 

私は、単純な単語( "="、含まれていませ " - "、 "[")にTwitterのパスワードを変更したとき、それはなかれ

<?xml version="1.0" encoding="UTF-8"?> 
    <rsp stat="fail"> 
     <err code="1001" msg="Invalid twitter username or password" /> 
    </rsp> 

しかしを返す それはOK

<?xml version="1.0" encoding="UTF-8"?> 
<rsp status="ok"> 
<statusid>4084106555</statusid> 
<userid>33348202</userid> 
<mediaid>56qrz</mediaid> 
<mediaurl>http://twitpic.com/i6qwg</mediaurl> 
</rsp> 

私の質問は、任意の文字を含む強力なパスワードでこのことを行う方法です。 お願いします。 ありがとうございます。

+2

urlencode itを試してみてください。 – Eimantas

答えて

0

私はあなたの例を試してみましたが、同じパスワード(テストアカウントで)を使ってみましたが、私のサンプル画像をアップロードする際に問題はありませんでした。私は、エンコードが正しく行われていることを確認するためにpcapを調べました。

-desktop:~/Dropbox$ curl -vv -F "username=********" -F "password=='hwsh[g" -F "message=test twitpic" -F [email protected]/code_Quality_Measurement_wtfm.jpg http://twitpic.com/api/uploadAndPost 
* About to connect() to twitpic.com port 80 (#0) 
* Trying 174.36.58.233... connected 
* Connected to twitpic.com (174.36.58.233) port 80 (#0) 
> POST /api/uploadAndPost HTTP/1.1 
> User-Agent: curl/7.19.5 (i486-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15 
> Host: twitpic.com 
> Accept: */* 
> Content-Length: 46066 
> Expect: 100-continue 
> Content-Type: multipart/form-data; boundary=----------------------------50b761e49108 
> 
< HTTP/1.1 100 Continue 
< HTTP/1.1 200 OK 
< Server: nginx/0.6.35 
< Date: Thu, 03 Dec 2009 19:06:38 GMT 
< Content-Type: application/xml 
< Connection: keep-alive 
< X-Powered-By: PHP/5.2.9 
< Content-Length: 196 
< 
<?xml version="1.0" encoding="UTF-8"?> 
<rsp status="ok"> 
<statusid>6311967029</statusid> 
<userid>**********</userid> 
<mediaid>rzu6c</mediaid> 
<mediaurl>http://twitpic.com/rzu6c</mediaurl> 
* Connection #0 to host twitpic.com left intact 
* Closing connection #0 
</rsp> 

どのシェルを使用していますか?あなたのパスワードで使用する "特殊"文字に応じて、シェルを展開しないように別の方法でエスケープする必要があるかもしれません。

コマンドラインで二重引用符を使用する場合は、特にパスワードにドル記号($)が含まれている場合。パスワードフィールドの前後に一重引用符を使用し、パスワードの一重引用符を明示的にエスケープする方が良い場合があります:

関連する問題