0

我嘗試從Azure中, 一個新的移動業務和數據化JSON正確曝光。Windows Phone 7的訪問Azure的移動服務(遠程服務器返回錯誤:未找到)

https://lifehope.azure-mobile.net/tables/USERPF

USERPF是一個示例表。

爲了簡化問題,我只是修改權限爲「大家」。

問題是下面列出的代碼不起作用。 錯誤消息是:遠程服務器返回錯誤:未找到 時,我打插入按鈕,插入USERPF的新紀錄......

private void butInsert_Click(object sender, RoutedEventArgs e) 
    { 
     USERPF item = new USERPF(); 
     item.Column1 = 789; 
     item.Column2 = 789; 

     WebClient wc = new WebClient(); 
     wc.Headers["Content-Type"] = "application/x-www-form-urlencoded"; 
     //wc.Headers["X-ZUMO-APPLICATION"] = ""; 
     wc.UploadStringCompleted += (ss, arg) => 
     { 
      if (arg.Error == null) 
      { 
       MessageBox.Show("OK"); 
      } 
      else 
      { 
       MessageBox.Show(arg.Error.Message); 
      } 
     }; 

     wc.UploadStringAsync(
      new Uri("https://lifehope.azure-mobile.net/tables/USERPF/"), 
      "POST", JsonHelper.ObjectToJson(item, typeof(USERPF))); 
    } 

//USERPF.cs

public class USERPF 
{ 
    [System.Runtime.Serialization.IgnoreDataMember()] 
    public int id { get; set; } 
    [System.Runtime.Serialization.DataMember()] 
    public int Column1 { get; set; } 
    [System.Runtime.Serialization.DataMember()] 
    public int Column2 { get; set; } 
} 

//JsonHelper.cs

public static string ObjectToJson(object obj, Type type) 
    { 
     try 
     { 
      //Create a stream to serialize the object to. 
      MemoryStream ms = new MemoryStream(); 

      // Serializer the User object to the stream. 
      DataContractJsonSerializer ser = new DataContractJsonSerializer(type); 
      ser.WriteObject(ms, obj); 
      byte[] json = ms.ToArray(); 
      ms.Close(); 
      return Encoding.UTF8.GetString(json, 0, json.Length); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
      return string.Empty; 
     } 
    } 

回答

2

你發送JSON數據,但你說,這是一個不同的內容類型:

wc.Headers["Content-Type"] = "application/x-www-form-urlencoded"; 

在請求中設置正確的內容類型:

wc.Headers["Content-Type"] = "application/json"; 

無關的東西:如果你的類型不是與[DataContract]裝飾,你不需要用[DataMember]裝飾性能列1和列2。

+0

非常感謝! – user1371541

0

嘗試投arg.Erro R鍵WebException,並檢查Statuce代碼。這可能是401(未授權)

var webException = arg.Error as WebException; 
if(webException == null) return; 


    if (webException.Response != null) 
    { 
    var response = (HttpWebResponse)webException.Response; 
    var status = response.StatusCode; //press F9 here 
    } 
+0

感謝您的回覆。我試着打開和關閉授權...結果是一樣的:** StatusCode:0「Badrequest」** – user1371541

+0

您是否檢查了狀態碼?它是什麼? –

相關問題