gpt4 book ai didi

POST 上的 C# Web API 错误 404

转载 作者:行者123 更新时间:2023-11-30 21:39:31 26 4
gpt4 key购买 nike

当我尝试在我的 web api 上发布一个帖子时,我收到错误 404,我不确定为什么我得到它的 url 并且一切都是正确的。

http://10.0.1.96/testwebapi/api/case/UpdateCasePersonal/?id=4584&forename=Andy&surname=Wilson&email=example@example.co.uk&telephone=0166%20254%204876&mobile=0733333333&title=Mr

这是我接下来要放入的 web api 代码的 Url

[HttpPost]
[Route("updatecasepersonal/")]
public string UpdateCasePersonal(string Caseid, string Title, string Forename, string Surname, string Telephone, string Email, string Mobile)
{
using (SqlConnection con = new SqlConnection(conString))
{
con.Open();
var query = $@"UPDATE TestDB.dbo.[crm-data] SET Title=" + Title + ", Forename=" + Forename + ", Surname=" + Surname + ", Telephone=" + Telephone + ", Email=" + Email + ", Mobile=" + Mobile + " WHERE Caseid=" + Caseid;
using (SqlCommand cmd = new SqlCommand(query, con))
{
cmd.CommandType = CommandType.Text;
var dtb = new DataTable();
var da = new SqlDataAdapter(cmd);
da.Fill(dtb);
return "Done";
}
}
}

而且我尝试像那样更新我的表格时做得对吗?还是我做错了所有事情,因为我还不熟练使用 C#

如果需要可以提供更多代码

这是我调用api的代码

onUpdateClick(e) {
this.setState({
updatedForename: this.state.Case.Forename,
updatedSurname: this.state.Case.Surname,
updatedHomeTelephone: this.state.Case.Telephone,
updatedMobileTelephone: this.state.Case.Mobile,
updatedEmail: this.state.Case.Email,
updatedTitle: this.state.titleValue,
updatedPurpose: this.state.purposeValue,
updatedMaritalStatus: this.state.maritalValue,
updatedEmpStatus: this.state.empValue,
}, function () {

var id = this.state.Case.Caseid;
var forename = this.state.updatedForename;
var surname = this.state.updatedSurname;
var email = this.state.updatedEmail;
var homeTelephone = this.state.updatedHomeTelephone;
var mobileTelephone = this.state.updatedMobileTelephone;
var title = this.state.updatedTitle;

axios.post('http://10.0.1.96/testwebapi/api/case/UpdateCasePersonal/', {
params: {
id: id,
forename: forename,
surname: surname,
email: email,
telephone: homeTelephone,
mobile: mobileTelephone,
title: title
}
}).then(function (res) {
}).catch(function (err) {
});

});
this.setState({
hasSaved: true
});

}

最佳答案

如果您真的想在 URL 中发送串联数据,请执行以下操作:

[HttpPut]
[Route("updatecasepersonal/{Caseid}/{Title}/{Forename}/{Surname}/{Email}/{Telephone}/{Mobile}")]
public string UpdateCasePersonal(string Caseid, string Title, string Forename, string Surname, string Telephone, string Email, string Mobile)
{
...
}

你的 url 应该看起来像:

http://10.0.1.96/testwebapi/api/case/UpdateCasePersonal/4584/Mr/Andy/Wilson/example@example.co.uk/0166%20254%204876/0733333333/

这不是好的做法。

这会在请求中完全公开您的数据。一般来说,连接几乎从来不是做任何与数据相关的事情的最佳方式。您应该将数据作为一个整体发送给调用。像这样的东西:

[HttpPut]
[Route("updatecasepersonal/{CaseId}"]
public string UpdateCasePersonal(string Caseid, RequestDto request)
{
...
}

当然,RequestDto 应该是您创建的一个类,它需要所有这些字段:Title、Forename、Surname、Email 等,并将其传递到您的 Javascript(或您发送帖子的任何地方) ).它应该被命名为适合您的要求。就像因为这看起来像用户配置文件数据,或者类似于 ContactDto 的东西。

关于POST 上的 C# Web API 错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45219786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com