在Python

时间:2017-01-26 14:06:56

标签: python curl

我通过PHP生成了我的Python文件。

import os

#state = 6f28bbc4-623a-4424-86df-76e10e82169d
#nonce = 6ff7995b-8425-4a66-bb9c-1671557e5778

cmd = 'curl -c session_cookies.txt "https://login.uat.site.be/openid/oauth/authorize?client_id=site&state=6f28bbc4-623a-4424-86df-76e10e82169d&nonce6ff7995b-8425-4a66-bb9c-1671557e5778&response_type=code&claims=%7B%22id_token%22%3A%7B%22http%3A%2F%2Fsite.be%2Fclaims%2Froles%22%3Anull%7D%7D" 2>/dev/null| curl -v -b session_cookies.txt -L -H "Content-Type: application/x-www-form-urlencoded" -v -d 'j_username=manager-sitelogin@gmail.com&j_password=site1' "https://login.uat.site.be/openid/login.do" 2>&1 >/dev/null | grep Location | grep code= '

os.system(cmd)

我一直在SyntaxError: invalid syntax。它在双引号内有很多单引号,我不确定我做错了什么。我已经尝试使用\'来逃避它。

1 个答案:

答案 0 :(得分:2)

当您查看块代码中的颜色时,您可以直接看到问题。

j_username=manager-sitelogin@gmail...为黑色,而字符串的其余部分为红色,因为'之前j_username会过早地关闭字符串。

您可以使用"""string"""语法,如此documentation

cmd = """curl -c session_cookies.txt "https://login.uat.site.be/openid/oauth/authorize?client_id=benu&state=6f28bbc4-623a-4424-86df-76e10e82169d&nonce6ff7995b-8425-4a66-bb9c-1671557e5778&response_type=code&claims=%7B%22id_token%22%3A%7B%22http%3A%2F%2Fsite.be%2Fclaims%2Froles%22%3Anull%7D%7D" 2>/dev/null| curl -v -b session_cookies.txt -L -H "Content-Type: application/x-www-form-urlencoded" -v -d 'j_username=manager-sitelogin@gmail.com&j_password=site1' "https://login.uat.site.be/openid/login.do" 2>&1 >/dev/null | grep Location | grep code= """