从.net桌面应用程序发送字节到网站

时间:2015-03-24 19:31:58

标签: c# asp.net sockets web byte

有没有办法以桌面应用程序到网站的字节形式发送数据(字符串,文件,,,)

1 个答案:

答案 0 :(得分:1)

您可以使用WebClient class在HTTP请求中发送数据。一串;例如:

string url = "http://website.com/MyController/MyAction";
string data = "Something";
string response;
using WebClient client = new WebClient()) {
  client.Encoding = Encoding.UTF8;
  response = client.UploadString(url, data);
}

或字节数组;例如:

string url = "http://website.com/MyController/MyAction";
byte[] data = { 1, 2, 3 };
byte[] response;
using WebClient client = new WebClient()) {
  response = client.UploadData(url, data);
}

在Web应用程序中(假设您使用的是MVC和C#),您将在控制器中获取一个获取数据的操作方法。例如:

public ActionResult MyAction() {
  byte[] data = Request.BinaryRead(Request.ContentLength);
  // do something with the data
  // create a byte array "response" with something to send back
  return Content(response, "text/plain");
}

字符串和字节数组在发送时都以字节数组结尾,因此您可以使用Encoding.UTF8.GetString(data)将数据转换为UploadString发送的字符串。

要返回UploadString的字符串,您可以使用Encoding.GetBytes(str)将字符串转换为字节。

这些方法有几个重载做类似的事情,可能更适合你的需要,但这应该让你开始。