我必须向的/batch
端点发送POST请求:'https://www.google-analytics.com'.
如Documentation中所述,我必须将请求发送到/batch
端点,并在自己的行中指定每个有效负载。
我使用邮递员实现了这一点,如下所示:
我的查询是使用Python的requests
库发出POST请求
我试过这样的方法:
import requests
text = '''v=1&cid=43223523&tid=UA-XXXXXX-1&t=event&ec=aggregated_stats&ea=daily_kpi&el=bookmarks&ev=13
v=1&cid=43223523&tid=UA-XXXXXX-1&t=event&ec=aggregated_stats&ea=daily_kpi&el=upvotes&ev=65
v=1&cid=43223523&tid=UA-XXXXXX-1&t=event&ec=aggregated_stats&ea=daily_kpi&el=questions&ev=15
v=1&cid=43223523&tid=UA-XXXXXX-1&t=event&ec=aggregated_stats&ea=daily_kpi&el=postviews&ev=95'''
response = requests.post('https://www.google-analytics.com/batch', data=text)
但它不起作用
更新
我试过这个,效果很好
import http.client
conn = http.client.HTTPSConnection("www.google-analytics.com")
payload = "v=1&cid=43223523&tid=UA-200248207-1&t=event&ec=aggregated_stats&ea=daily_kpi&el=bookmarks&ev=13\r\nv=1&cid=43223523&tid=UA-200248207-1&t=event&ec=aggregated_stats&ea=daily_kpi&el=upvotes&ev=63\r\nv=1&cid=43223523&tid=UA-200248207-1&t=event&ec=aggregated_stats&ea=daily_kpi&el=questions&ev=11\r\nv=1&cid=43223523&tid=UA-200248207-1&t=event&ec=aggregated_stats&ea=daily_kpi&el=postviews&ev=23"
headers = {
'Content-Type': 'text/plain'
}
conn.request("POST", "/batch", payload, headers)
res = conn.getresponse()
但问题仍然悬而未决,这里的问题是什么
不需要对换行符进行双转义
此外,对于多行字符串,根本不需要换行符
此外,您在多行字符串中输入的缩进也会被计算在内:
这里有一个SO答案,用一些额外的方法来解释这一点:https://stackoverflow.com/a/10660443/4570170
现在是请求主体
文件上说
因此,请尝试对有效负载进行uri编码:
最后,我自己想出了解决办法
更新以获得其他人的帮助
问题是我在
AWS Cloud9
上工作,正如documentation中提到的那样所以我们只需要包含
User Agent parameter
在我们的每个
payloads
它起作用了
相关问题 更多 >
编程相关推荐