2012-11-16 41 views
1

我創建一個簡單的Android應用程序發送的JSON格式到的WebAPI MVC4在asp.net使用POST,並使用用於數據庫的SQL服務器的名稱和PhoneNumber從Android的失敗。問題是我似乎無法得到它的權利,當我發送信息到webapi時,它從不向我的數據庫發佈任何內容。後使用的WebAPI

當我將使用招的JSON它的工作,但我不明白的問題是什麼。請幫忙,我一直在困擾一段時間。

這裏是我的jQuery的AJAX客戶端代碼:

$.ajax({ 
     type: "POST", 
     data: {"Name" : "JUJI", "PhoneNumber" : 999}, 
     url: "http://127.0.0.1:52380/api/Default1", 
     dataType: "json", 
     success:function(response){ 
     alert("yupie"); 
     console.log(response); 
    }, 
    error:function(response){ 
     alert("no response"); 
     console.log(response); 
    } 
    }); 

這是對的WebAPI的服務器端我的模型代碼:

public class Contact 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public double PhoneNumber { get; set; } 

} 

我在我的服務器端控制器:

// POST api/Default1 
     public HttpResponseMessage PostContact(Contact contact) 
     { 

      if (ModelState.IsValid) 
      { 

       db.Contacts.Add(contact); 
       db.SaveChanges(); 

       HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, contact); 
       response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = contact.ID })); 
       return response; 
      } 
      else 
      { 
       return Request.CreateResponse(HttpStatusCode.BadRequest); 
      } 
     } 

回答

0

如果您運行在同一臺機器上的服務器作爲Android模擬器,然後使用10.0.2.2作爲服務器IP。

+0

嘿,工作,非常感謝! :D只是一個問題,爲什麼10.0.2.2的IP地址? – user1803354

+0

請接受它的工作答案... Android模擬器的工作這樣更可以在下面的鏈接http://developer.android.com/tools/devices/emulator.html#networkaddresses找到 –

0

你正在你的電話到本地主機(127.0.0.1)在這種情況下指的是你在銀行經營的設備或模擬器在代碼上。所以手機正試圖與自己交談,顯然你的服務器端代碼不能在設備上運行。您需要將127.0.0.1替換爲運行您的servlet的PC的IP地址或服務器名稱。

+0

感謝您的回答!我改變了IP地址,但沒有收到回覆。之前當我有本地主機地址時,我收到了一個錯誤響應,現在似乎沒有任何事情發生。我在eclipse上測試我的android模擬器。 – user1803354