首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译时UploadSiteHostedPictures异常错误500 : resp = (HttpWebResponse)req.GetResponse();

编译时UploadSiteHostedPictures异常错误500 : resp = (HttpWebResponse)req.GetResponse();
EN

Stack Overflow用户
提问于 2013-06-28 04:19:19
回答 1查看 617关注 0票数 0

试图将图片上传到eBay以获取AddFixedPriceItem调用中的产品变体。

我已经将代码复制到我的程序表单中:id/1093/~/.net-sample-in-c%23-for-uploadsitehostedpictures

在调试过程中,我再次检查了令牌、键和eBay(沙箱) URL是否都用于沙箱,并正确地加载到变量中。我不确定我还需要做什么?

当代码命中resp = (HttpWebResponse)req.GetResponse();时抛出一个异常

WebException:“远程服务器返回一个错误:(500)内部服务器错误”

下面是我的代码(没有键):

静态字符串UploadSiteHostedPicture(string imageUrl) { string response = string.Empty;

代码语言:javascript
复制
    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;
}
EN

回答 1

Stack Overflow用户

发布于 2013-07-05 08:04:14

我使用了错误的沙箱URL。通常,我使用SOAP,但我没有意识到它们对于XML调用是不同的。见此处:https://developer.ebay.com/DevZone/support/knowledgebase/

另外,上面的代码是错误的,因为它没有正确地从XML响应中提取上传的图像URL (并且没有返回它)。如果您想看到我的noob解决方案来完成它,那么下面的代码应该在try块中(上面):

代码语言:javascript
复制
  try
        {
            // get response and write to console
            resp = (HttpWebResponse)req.GetResponse();
            StreamReader responseReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
            string output = responseReader.ReadToEnd();
            resp.Close();
            //XmlDocument xmlResponse = new XmlDocument();
            //xmlResponse.LoadXml(output);

            string[] outputArray1 = Regex.Split(output, @"<FullURL>");
            string urlNowAtFrontOfString = outputArray1[1];
            string[] outputArray2 = Regex.Split(urlNowAtFrontOfString, @"</FullURL>");
            response = outputArray2[0];
            //process response
            //show them how to get the full url and specify that in the AddItem request
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17357112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档