使用post方法访问play.com api

时间:2014-01-28 08:40:08

标签: c# api http-post

我想在play.con网站上使用play.com api插入产品。我使用下面的代码来发布数据,但我得到了#34;远程服务器返回了一个错误:(401)未经授权。"错误。

    byte[] data = System.Text.UnicodeEncoding.UTF8.GetBytes("test@username.co.uk&pass");
    Base64Encoder myEncoder = new Base64Encoder(data);
    StringBuilder sb = new StringBuilder();
    sb.Append(myEncoder.GetEncoded());

    Response.Write(sb.ToString());
   // String encoding = Base64Encoder.encode("username" + ":" + "password");
    var request = (HttpWebRequest)WebRequest.Create("https://api.playtrade.com/Inventory.asmx/CatalogUploadAddModifyDelete");
    request.ContentType = "application/json";
    request.Method = "POST";
    request.Headers.Add("Authorization", "Basic:"+sb.ToString());

    using (StreamWriter streamWriter = new StreamWriter(request.GetRequestStream()))
    {
        string json = "{\"product-id\":\"1111\"," +
                         "\"sku\":\"1414\"," +
                         "\"dispatch-to\":\"dispatch-to\"," +
                         "\"delivered-price-gbp\":\"£1\"," +
                         "\"delivered-price-euro\":\"\"," +
                         "\"item-condition\":\"11\"," +
                      "\"add-delete\":\"a\"}";
        streamWriter.Write(json);
        streamWriter.Flush();
        streamWriter.Close();

        HttpWebResponse httpResponse = (HttpWebResponse)request.GetResponse();
        using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            string result = streamReader.ReadToEnd();
        }
    }

1 个答案:

答案 0 :(得分:0)

如果它使用基本身份验证,则base64字符串应包含 username :* password *,但您有用户名& 密码。注释行实际上是正确的。