Report download using HTTPClient still gives an Error "Missing client information"

77 views
Skip to first unread message

Michael D

unread,
Apr 1, 2015, 6:00:16 AM4/1/15
to adwor...@googlegroups.com
Hey,

I tried to get some reports, but I get the following Error:

"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
<reportDownloadError>
<ApiError>
<type>ReportDownloadError.INVALID_PARAMETER</type>
<trigger>Missing client information</trigger>
<fieldPath></fieldPath>
</ApiError>
</reportDownloadError>"

This is my code:



 
var client = new HttpClient();

           
var postRequest = this.ConstructPostRequest();
           
var content = new StringContent(postRequest, Encoding.UTF8, "application/x-www-form-urlencoded");

            client
.DefaultRequestHeaders.TryAddWithoutValidation("Authorization:", "Bearer " + accesToken);
            client
.DefaultRequestHeaders.TryAddWithoutValidation("developerToken: ", developerToken);
            client
.DefaultRequestHeaders.TryAddWithoutValidation("clientCustomerId: ", clientCustomerId);

           
var request = new HttpRequestMessage(HttpMethod.Post, baseAdressAdWords)
           
{            
               
Content = content
           
};
           
           
var response = client.SendAsync(request).Result;
           
           
var responseString = response.Content.ReadAsStringAsync().Result;
       
}

       
private string ConstructPostRequest()
       
{
           
             
string xml=@"<reportDefinition xmlns=""https://adwords.google.com/api/adwords/cm/v201409"">
                  <selector>
                    <fields>CampaignId</fields>
                    <fields>Id</fields>
                    <fields>Impressions</fields>
                    <fields>Clicks</fields>
                    <fields>Cost</fields>
                    <predicates>
                      <field>Status</field>
                      <operator>IN</operator>
                      <values>ENABLED</values>
                      <values>PAUSED</values>
                    </predicates>
                  </selector>
                  <reportName>Custom Adgroup Performance Report</reportName>
                  <reportType>ADGROUP_PERFORMANCE_REPORT</reportType>
                  <dateRangeType>LAST_7_DAYS</dateRangeType>
                  <downloadFormat>XML</downloadFormat>
                </reportDefinition>"
;

             
return "__rdxml="+ System.Net.WebUtility.UrlEncode(xml);
       
}

Does anyone know what Im doing wrong?

Thank you very much.

Michael D

unread,
Apr 1, 2015, 6:21:27 AM4/1/15
to adwor...@googlegroups.com
Solved :)

            var client = new HttpClient();

           
var postRequest = this.ConstructPostRequest();
           
var content = new StringContent(postRequest, Encoding.UTF8, "application/x-www-form-urlencoded");


           
var request = new HttpRequestMessage(HttpMethod.Post, baseAdressAdWords)
           
{            
               
Content = content,
           
};
            request
.Headers.Add("Authorization", "Bearer " + accesToken);
            request
.Headers.Add("developerToken", developerToken);
            request
.Headers.Add("clientCustomerId", clientCustomerId);
           
var response = client.SendAsync(request).Result;
           
           
var soapResponse = response.Content.ReadAsStringAsync().Result;

           
return soapResponse;

       
}

       
private string ConstructPostRequest()
       
{
           
             
string xml=@
"<reportDefinition>
;

             
return "__rdxml="+ System.Net.WebUtility.UrlEncode(xml);
       
}
Reply all
Reply to author
Forward
0 new messages