我想在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();
}
}
答案 0 :(得分:0)
如果它使用基本身份验证,则base64字符串应包含 username :* password *,但您有用户名& 密码。注释行实际上是正确的。