框架 3.5 桌面应用程序中的"The remote server returned an error: (404)" [已解决]



我正在为桌面应用程序使用API。该应用程序运行在。net框架3.5上。

我有一个运行完美的API,但是当我从桌面应用程序调用API时,有一个错误:

"远程服务器返回一个错误:(404)">

但是我的API运行没有问题。我有两个参数,它们将在URL中传递。

下面是我的代码:

string url = "http://localhost:58167/api/Project/";
string data = "65354/19216882";
string response;
WebClient client = new WebClient();
{
client.Encoding = Encoding.UTF8;
response = client.downloadstring(url, "POST", data);
}

我该如何解决这个问题?

编辑:下面的代码演示了API的样子:

// GET api/Project
public string GetProjects(string key, string IP)
{
string sql = "";
string en = "";
if (IP == "19216")
sql = "garbage1";
if (IP == "19882")
sql = " garbage2";
if (IP == "181249")
sql = " garbage3";
if (IP == "85206")
sql = " garbage4";
if (IP == "87249")
sql = " garbage5";
en = CryptorEngine.Encrypt(sql, key);
return en;
}

update solved code:

string url = "http://localhost:58167/api/Project/";
string data = "65354/19216882";
string response;
WebClient client = new WebClient();
{
client.Encoding = Encoding.UTF8;
response = client.downloadstring(url, "POST", data);
}

尝试添加属性路由到你的API

Route[("~/api/Project/{key}/{ip}")]
public string GetProjects(string key, string IP)

代码

string url = "http://localhost:58167/api/Project/65354/19216882";
string response;
WebClient client = new WebClient();
{
client.Encoding = Encoding.UTF8;
response = client.UploadString(url, "GET");
}

如果你不能控制api

可以使用已有的

操作
Route[("~/api/Project")]
public string GetProjects(string key, string IP)

代码
string url = "http://localhost:58167/api/Project?key=65354&IP=19216882";

string response;
WebClient client = new WebClient();
{
client.Encoding = Encoding.UTF8;
response = client.UploadString(url, "GET");
}

如果你仍然需要使用POST,你必须修复动作

public class ViewModel
{
public  string Key {get; set;}
public string IP  {get; set;}
}
Route[("~/api/Project")]
public string GetProjects([FromBody]ViewModel model)

谢谢大家。我解决了问题,并更新了有问题的更新代码。只需将uploadstring更改为downloadstring。和宾果。它的工作原理。-

update solved code:

string url = "http://localhost:58167/api/Project/";
string data = "65354/19216882";
string response;
WebClient client = new WebClient();
{
client.Encoding = Encoding.UTF8;
response = client.downloadstring(url, "POST", data);
}

相关内容

最新更新