我从命令行执行此curl请求:
curl -X POST https://www.googleapis.com/bigquery/v2/projects/projname/queries?key={AIzaSyB740elm45sh9AkpuaekZW8eJbRi_oDDAc} \
在此命令之后,我有一个要传递的参数列表:
{
"query": "SELECT * FROM [red-road-574:TestSridevi.Trucks] LIMIT 20",
"defaultDataset": {
"datasetId": "TestSridevi",
"projectId": "red-road-574"
}
}
Bur执行第一个命令后,我收到错误:
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 411 (Length Required)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
</style>
<a href=//www.google.com/><span id=logo aria-label=Google></span></a>
<p><b>411.</b> <ins>That’s an error.</ins>
<p>POST requests require a <code>Content-length</code> header. <ins>That’s all we know.</ins>
任何有关如何解决此问题的建议都将受到赞赏。
答案 0 :(得分:0)
这可能会奏效:
public class PicassoClient {
public static void downloadImage(Context context, String url, ImageView img){
if(url != null && url.length()>0){
Picasso.with(context).load(url).placeholder(R.drawable.placeholder).into(img);
}
else {
Picasso.with(context).load(R.drawable.placeholder).into(img);
}
}
}
错误消息表明POST请求需要填写curl -X POST -d "" https://www.googleapis.com/bigquery/v2/projects/projname/queries?key={AIzaSyB740elm45sh9AkpuaekZW8eJbRi_oDDAc}
标头字段,而您没有提供。 Content-length
开关会为您填写。您也可以发送-d ""
请求,而不需要提供切换。
答案 1 :(得分:0)
以下是HTTP状态代码列表:
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
服务器要求您指定请求内容的长度。
如果在请求中添加-d“”,CURL将发送Content-Length:0标头。
我在这里找到了这个:https://serverfault.com/questions/315849/curl-post-411-length-required