我试图使用游击邮件API位于http://api.guerrillamail.com/ajax.php,但我遇到了麻烦与"set_email_user"函数,因为它需要我张贴参数与函数。
我从来没有使用过PHP,也没有使用过JSON,所以我不知道如何正确地将参数传递给这样的函数。
我使用python 2.7库请求使事情更容易。
s = requests.session()
payload = {'f':'get_email_address'}
headers = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13'}
req2 = s.post('http://api.guerrillamail.com/ajax.php', data = payload, headers = headers)
print req2.text #prints out the current email address
payload = {'f':'set_email_user:u''sark'''} #here is the issue. I cannot figure out how to pass a string argument into the set_email_user function
req = s.post('http://api.guerrillamail.com/ajax.php', data = payload, headers = headers, cookies = s.cookies)
print req.text
payload = {'f':'get_email_address'}
req2 = s.post('http://api.guerrillamail.com/ajax.php', data = payload, headers = headers, cookies = s.cookies)
print req2.text #prints the same email address as above
看一下文档,看看字里行间的意思。顶部有一个大标题,构建了"参数"的概念;底部附近的一些示例代码似乎在说,如果是对数据的"查询",那么发送一个GET请求,并在查询字符串中编码参数URL,例如:
payload = {'f':'get_email_address'}
req2 = s.get('http://api.guerrillamail.com/ajax.php', params=payload)
print req2.text #prints out the current email address
…,但如果你正在修改数据,发送一个POST与参数URL编码在请求体:
payload = {'f':'set_email_user', 'email_user': 'sark'}
req2 = s.post('http://api.guerrillamail.com/ajax.php', data=payload)
print req2.text #prints out the current email address
请求文档的这一部分是用于GET参数的:
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get("http://httpbin.org/get", params=payload)
这个部分是用于POST数据的。
最后,不要对你的User-Agent撒谎。根据网站,API是开放的,并且是公开的;Python应该没问题,而且您不需要模糊您的User-Agent。