0

BingAds Soap API 呼び出しを使用して、キーワードのパフォーマンスを取得しようとしています。しかし、次のリクエストは何らかの理由で落ちました。だれかが問題の場所を教えてくれれば幸いです。内部 500 エラーが返されます。

private void button1_Click(object sender, EventArgs e)
{

      string xml = @"<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope
      xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'
      xmlns:v8='https://adcenter.microsoft.com/v8'
      xmlns:arr='https://schemas.microsoft.com/2003/10/Serialization/Arrays'>
      <soapenv:Header>
      <v8:UserName>xxx</v8:UserName>
      <v8:Password>xxx</v8:Password>
      <v8:DeveloperToken>xxx</v8:DeveloperToken>
      <v8:CustomerId>xxx</v8:CustomerId>
      <v8:CustomerAccountId>xxx</v8:CustomerAccountId>
      <v8:ApplicationToken></v8:ApplicationToken>
      </soapenv:Header>
      <soapenv:Body>
      <v8:SubmitGenerateReportRequest>
      <v8:ReportRequesti:type=""v8:KeywordPerformanceReportRequest""xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>
      <v8:Format>Csv</v8:Format>
      <v8:Language>English</v8:Language>
      <v8:ReportName>MyReport</v8:ReportName>
      <v8:ReturnOnlyCompleteData>false</v8:ReturnOnlyCompleteData>
      <v8:Aggregation>Daily</v8:Aggregation>
      <v8:Columns>
      <v8:KeywordPerformanceReportColumn>AccountId</v8:KeywordPerformanceReportColumn>
      <v8:KeywordPerformanceReportColumn>AccountName</v8:KeywordPerformanceReportColumn>
      <v8:KeywordPerformanceReportColumn>Keyword</v8:KeywordPerformanceReportColumn>
      <v8:KeywordPerformanceReportColumn>KeywordId</v8:KeywordPerformanceReportColumn>
      <v8:KeywordPerformanceReportColumn>AdGroupName</v8:KeywordPerformanceReportColumn>
      <v8:KeywordPerformanceReportColumn>CostPerConversion</v8:KeywordPerformanceReportColumn>
      </v8:Columns>
      <v8:Scope>
      <v8:AccountIds>
      <arr:long>xxx</arr:long>
      </v8:AccountIds>
      </v8:Scope>
      <v8:Time>
      <v8:PredefinedTime>LastSevenDays</v8:PredefinedTime>
      </v8:Time>
      </v8:ReportRequest>
      </v8:SubmitGenerateReportRequest>
      </soapenv:Body>
      </soapenv:Envelope>";

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://adcenterapi.microsoft.com/Api/Advertiser/v8/Reporting/ReportingService.svc");

        req.ContentType = "text/xml; charset=utf-8";
        req.Method = "POST";
        req.Accept = "text/xml";

        using (StreamWriter writer = new StreamWriter(req.GetRequestStream()))
        {
            writer.Write(xml);
        }

        WebResponse response1 = req.GetResponse();
        Stream responseStream = response1.GetResponseStream();
        StreamReader myStreamReader = new StreamReader(responseStream);
        string responseData = myStreamReader.ReadToEnd();


}
4

2 に答える 2

1

私の知る限り、Arrays 名前空間は https であってはなりません。

xmlns:arr=' http://schemas.microsoft.com/2003/10/Serialization/Arrays '

また、KeywordPerformanceReportRequest を余分に引用符で囲む必要はありません。"v8:KeywordPerformanceReportRequest"

これはリクエストに影響を与えるべきではありませんが、必須ではありません。

これが役立つことを願っています!

エリック アーバン [MSFT Bing Ads UA]

于 2013-02-12T20:07:45.783 に答える
0

この行:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://adcenterapi.microsoft.com/Api/Advertiser/v8/Reporting/ReportingService.svc");

次のように、URLに?wsdlを含めるべきではありません。

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://adcenterapi.microsoft.com/Api/Advertiser/v8/Reporting/ReportingService.svc?wsdl");
于 2013-02-03T09:38:22.293 に答える