0

AddFixedPriceItem 呼び出しで製品バリエーションの写真を eBay にアップロードしようとしています。

コードを私のプログラム フォームにコピーしました: https://ebay.custhelp.com/app/answers/detail/a_id/1093/~/.net-sample-in-c%23-for-uploadsitehostedpictures

デバッグ中に、トークン、キー、および eBay (サンドボックス) URL がすべてサンドボックス用であり、変数に正しく読み込まれていることを再確認しました。他に何をする必要があるのか​​ わかりませんか?

ヒットすると、コードは例外をスローしますresp = (HttpWebResponse)req.GetResponse();

WebException: 「リモート サーバーがエラーを返しました: (500) 内部サーバー エラー」

これが私のコードです(キーなし):

static string UploadSiteHostedPicture(string imageUrl) { string response = string.Empty;

    string token = ConfigurationManager.AppSettings["UserAccount.ApiToken"];
    string SandboxOrProductionURL = ConfigurationManager.AppSettings["Environment.ApiServerUrl"];
    string PictureURL = imageUrl;
    string DevID = "Keys were removed before posting on stackoverflow";
    string AppID = "Keys were removed before posting on stackoverflow";
    string CertID = "Keys were removed before posting on stackoverflow";
    string payload = "<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
    "<UploadSiteHostedPicturesRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">" +
    "<ExternalPictureURL>" + PictureURL + "</ExternalPictureURL>" +
    "<RequesterCredentials><eBayAuthToken>" + token + "</eBayAuthToken></RequesterCredentials>" +
    "</UploadSiteHostedPicturesRequest>";
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(SandboxOrProductionURL);
    HttpWebResponse resp = null;
    //Add the request headers
    req.Headers.Add("X-EBAY-API-COMPATIBILITY-LEVEL", "803");
    req.Headers.Add("X-EBAY-API-SITEID", "0");
    req.Headers.Add("X-EBAY-API-CALL-NAME", "UploadSiteHostedPictures");
    req.Headers.Add("X-EBAY-API-DEV-NAME", DevID);
    req.Headers.Add("X-EBAY-API-APP-NAME", AppID);
    req.Headers.Add("X-EBAY-API-CERT-NAME", CertID);
    //set the method to POST
    req.Method = "POST";
    //Convert the string to a byte array
    byte[] postDataBytes = System.Text.Encoding.ASCII.GetBytes(payload);
    int len = postDataBytes.Length;
    req.ContentLength = len;
    //Post the request to eBay
    System.IO.Stream requestStream = req.GetRequestStream();
    requestStream.Write(postDataBytes, 0, len);
    requestStream.Close();
    try
    {
        // get response and write to console
        resp = (HttpWebResponse)req.GetResponse(); //THIS IS WHERE THE EXCEPTION OCCURS
        StreamReader responseReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
        string output = responseReader.ReadToEnd();
        resp.Close();
        XmlDocument xmlResponse = new XmlDocument();
        xmlResponse.LoadXml(output);
        response = xmlResponse.ToString();
        //process response
        //show them how to get the full url and specify that in the AddItem request
    }
    catch (Exception ex)
    {
        MessageBox.Show("Exception caught from UploadSiteHostedPictures method:\r\n\r\n" + ex.Message);
    }
    return response;
}
4

1 に答える 1