我正在创建一个简单的Android应用程序,它使用JSON格式的POST将名称和电话号码发送到asp.net中的webApi MVC4,并使用SQL服务器作为数据库。问题是我似乎无法正确使用它,当我向webapi发送信息时,它从不向我的数据库发布任何内容。
当我使用fiddler发送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 :(得分:0)
您正在调用localhost(127.0.0.1),在这种情况下,它指的是您运行代码的设备或模拟器。因此,手机正试图与自己交谈,显然您的服务器端代码不会在设备上运行。您需要将127.0.0.1替换为运行servlet的PC的IP地址或服务器名称。
答案 1 :(得分:0)
如果您在与Android模拟器相同的计算机上运行服务器,则使用10.0.2.2作为服务器IP。