我有webapi和方法:
public class ArticlesController : ApiController
{
//
// GET: api/values
public IEnumerable<Article> Get()
{
using (CollectionsEntities entities = new CollectionsEntities())
{
return entities.Articles.ToList<Article>();
}
}
}
工作正常,并在浏览器中查看:
我创建了一个客户端:
public static class CollectionClient
{
private static readonly HttpClient client;
public static Uri ServerBaseUri
{
get { return new Uri("http://localhost:10779/api/"); }
}
public static Boolean IsDirty { get; private set; }
static CollectionClient()
{
IsDirty = true;
client = new HttpClient(new DemoHttpMessageHandler());
}
// get all articles
public static async Task<List<Article>> GetAllArticlesAsync()
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Uri serverUril = new Uri(ServerBaseUri, "Articles");
var response = await client.GetAsync(serverUril);
response.EnsureSuccessStatusCode();
var articles = await response.Content.ReadAsAsync<List<Article>>();
IsDirty = false;
return articles;
}
}
响应获得404状态代码:
检查 ID_CAP_NETWORKING
以确保它可以访问互联网。
有人可以帮我一把吗?提前谢谢!
答案 0 :(得分:1)
我只有Android的经验,但模拟器的“localhost”可能与您的PC的“localhost”不同。请尝试使用内部子网IP。
答案 1 :(得分:0)
在windows phone 7.x中,模拟器共享主机PC的网络,这意味着:
我们可以在我们的PC上托管服务,并使用htt://localhost..
在Windows Phone 8中,模拟器是在Hyper V下运行的虚拟机,这意味着:
您无法使用htt://localhost..
您必须在URI中使用主机PC的正确主机名或原始IP地址