2014-01-28 102 views
0

我想在play.con網站上使用play.com api插入產品。我使用下面的代碼發佈數據,但我得到「遠程服務器返回錯誤:(401)未經授權。」錯誤。使用post方法訪問play.com api

byte[] data = System.Text.UnicodeEncoding.UTF8.GetBytes("[email protected]&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

如果使用基本身份驗證的base64字符串應該由用戶名的:*密碼*,但你必須用戶名 & 密碼。評論線實際上是正確的。