Post Xamarin-C#-HttpClient
我有一个关于httpclient的问题,我有一个node.js rest api,我正试图将用户信息发布(发送)到服务,以便插入数据库。这项服务还可以,我用人工和邮递员进行了测试 但是我使用vs2017 xamarin并使用httpclient来消费信息 我将用户对象转换为json格式Post Xamarin-C#-HttpClient,post,xamarin,dotnet-httpclient,Post,Xamarin,Dotnet Httpclient,我有一个关于httpclient的问题,我有一个node.js rest api,我正试图将用户信息发布(发送)到服务,以便插入数据库。这项服务还可以,我用人工和邮递员进行了测试 但是我使用vs2017 xamarin并使用httpclient来消费信息 我将用户对象转换为json格式 var json=JsonConvert.serialized对象(用户) 结果:{“用户名”:“用户”,“电子邮件”:user@hot.com“,“psw”:“开玩笑”} 然后创建一个内容字符串类型并传递jso
var json=JsonConvert.serialized对象(用户)代码>
结果:{“用户名”:“用户”,“电子邮件”:user@hot.com“,“psw”:“开玩笑”}
然后创建一个内容字符串类型并传递json:
var content=newstringcontent(json,Encoding.UTF8,“application/json”)代码>
然后我创建客户机
var-client=new-HttpClient()代码>
我测试了以下两个代码
如果我使用这段代码,服务工作,数据插入数据库,但我认为这是因为我喜欢手动传递参数
httpresponsemessageresponse=wait client.PostAsync(“http://localhost/ws/postUser/“+e.userName+”/“+e.email+”/“+e.psw,内容)代码>
但我所期望的是,这段代码可以工作,但在服务器上,我得到的错误是找不到url。我想我需要将参数映射到内容
httpresponsemessageresponse=wait client.PostAsync(“http://localhost/ws/postUser/“,内容)代码>
服务的URL为
这是完整的代码:
我有一个OnSignUpEventArgs类,它继承自EventArgs,并在其中声明用户对象
private async void SigUpDialog_mOnSigUpComplete(object sender, OnSignUpEventArgs e)
{
var json = JsonConvert.SerializeObject(e);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var client = new HttpClient();
HttpResponseMessage response = await client.PostAsync("http://localhost/ws/postGasUser/"+ e.userName + "/" + e.email + "/" + e.psw, content);
// HttpResponseMessage response = await client.PostAsync("http://localhost/ws/postGasUser/", content);
if (response.IsSuccessStatusCode)
{
Console.Write("Success");
}
else
{
Console.Write("Error");
}
}
不要使用localhost。指的是移动设备(或模拟器),它不是运行服务的地方。请改用IP或FQDN。尝试使用服务器IP地址可能我不理解,但您是说服务的URL是http://localhost/ws/postUser/:userName/:email/:psw
并发布到http://localhost/ws/postUser/
返回404?对我来说似乎是正确的-它不是服务的URL!感谢它与IP地址一起工作不要使用本地主机。指的是移动设备(或模拟器),它不是运行服务的地方。请改用IP或FQDN。尝试使用服务器IP地址可能我不理解,但您是说服务的URL是http://localhost/ws/postUser/:userName/:email/:psw
并发布到http://localhost/ws/postUser/
返回404?对我来说似乎是正确的-它不是服务的URL!谢谢,它与IP地址一起工作