1

我正在创建一个简单的 android 应用程序,它使用 POST 以 JSON 格式将姓名和电话号码发送到 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);
            }
        }
4

2 回答 2

0

您正在调用 localhost (127.0.0.1),在这种情况下,它指的是您正在运行代码的设备或模拟器。所以电话试图与自己对话,显然你的服务器端代码没有在设备上运行。您需要将 127.0.0.1 替换为运行您的 servlet 的 PC 的 IP 地址或服务器名称。

于 2012-11-16T15:22:59.347 回答
0

如果您在与 android 模拟器相同的机器上运行服务器,则使用 10.0.2.2 作为服务器 IP。

于 2012-11-16T17:31:48.317 回答