2012-11-16 18 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