2016-07-27 3 views
0

Google 애드 워즈보고 HTTP POST 요청을 사용하여 여러 캠페인/광고 그룹에 존재할 수있는 키워드 목록에 대한 통계를 검색하려고합니다. 이것은 https://developers.google.com/adwords/api/docs/guides/reporting#prepare-the-http-post-request을 가리키는 API 문서입니다.구글 애드 워즈보고 HTTP POST 요청이 400 응답 코드를 반환

다음은 400 오류 코드를 반환하는 스칼라 코드입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까 ? 또는 KEYWORDS_PERFORMANCE_REPORT 보고서 유형에서 데이터를 검색하는 다른 방법이 있습니까?

 val httpClient = new DefaultHttpClient() 
     val postRequest=new HttpPost("https://adwords.google.com/api/adwords/reportdownload/v201605") 
     postRequest.addHeader("Host","adwords.google.com") 
     postRequest.addHeader("User-Agent", "curl, gzip") 
     postRequest.addHeader("Accept","*/*") 
     postRequest.addHeader("Expect","100-continue") 
     postRequest.addHeader("Accept-Encoding","gzip") 
     postRequest.addHeader("Content-Type","multipart/form-data; boundary=------------------------12d01fae60c7b559; charset=utf-8") 
     postRequest.addHeader("Authorization","Bearer 1/*************************************") 
     postRequest.addHeader("developerToken","/*************************************")") 
     postRequest.addHeader("clientCustomerId","/*************************************")") 
     postRequest.addHeader("Parameters","__rdxml: <?xml version=\"1.0\" " + 
     "encoding=\"UTF-8\"?>" + 
     "<reportDefinition>" + 
     " <selector>" + 
     " <fields>CampaignId</fields>" + 
     " <fields>AdGroupId</fields>" + 
     " <fields>Id</fields>" + 
     " <fields>Criteria</fields>" + 
     " <fields>CriteriaType</fields>" + 
     " <fields>Impressions</fields>" + 
     " <fields>Clicks</fields>" + 
     " <fields>Cost</fields>" + 
     " <predicates>" + 
     "  <field>Status</field>" + 
     "  <operator>NOT_IN</operator>" + 
     "  <values>PAUSED</values>" + 
     " </predicates>" + 
     " </selector>" + 
     " <reportName>Criteria performance report #56bd904878715</reportName>" + 
     " <reportType>CRITERIA_PERFORMANCE_REPORT</reportType>" + 
     " <dateRangeType>LAST_7_DAYS</dateRangeType>" + 
     " <downloadFormat>CSV</downloadFormat>" + 
     "</reportDefinition>") 
     val httpResponse=httpClient.execute(postRequest) 
     println(httpResponse.getStatusLine.toString) 

답변

0

귀하의 보고서 정의 중 하나를 코드 -in application/x-www-form-urlencoded 또는 multipart/form-data 당신이 Parameters라는 헤더로 추가 인코딩 POST 요청의 몸에 가야한다.

관련 문제