这让我头疼了好几个小时,我尝试使用我的推特帐户使用curl将图像发布到twitpic。
curl -F "username=myusername" -F "password=='hwsh[g" -F "message=test twitpic" -F media=@/dos/smallapps2/smallapps/tiny-delicious/snapshot/test.png http://twitpic.com/api/uploadAndPost
一直回归
<?xml version="1.0" encoding="UTF-8"?>
<rsp stat="fail">
<err code="1001" msg="Invalid twitter username or password" />
</rsp>
但是当我将twitter密码更改为简单的单词(不包含“=”,“ - ”,“[”) 没关系
<?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>
我的问题是如何使用包含任何字符的强密码来执行此操作。 请提示。 谢谢。
答案 0 :(得分:0)
我尝试使用完全相同的密码(在测试帐户上)运行您的示例,并且在上传示例图像时没有任何问题。我甚至查看了pcap以确保编码正确完成。
-desktop:~/Dropbox$ curl -vv -F "username=********" -F "password=='hwsh[g" -F "message=test twitpic" -F media=@./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>
你正在使用什么壳牌?根据您在密码中使用的“特殊”字符,您可能需要以不同方式转义它们以防止shell扩展/等
任何时候在命令行中使用双引号,都必须处理变量扩展,特别是如果您的密码包含一个美元符号($)。最好在密码字段周围使用单引号,并明确地转义密码中的任何单引号:
-F 'password==\'hwsh[g'