所以我有从服务器读取的功能:
btnRead.Click += (sender, e) =>
{
showtxt.Text = ShowRemoteStringFile("ftp://url/text.txt");
};
string ShowRemoteStringFile(string readUrl)
{
WebRequest req = WebRequest.Create(readUrl);
req.Credentials = new NetworkCredential("username", "password");
WebResponse rsp = (WebResponse)req.GetResponse();
StreamReader rdr = new StreamReader(rsp.GetResponseStream());
string result = rdr.ReadToEnd();
return result;
}
现在我正在寻找写入功能,但找不到任何东西。我尝试将 Web 请求与 SteamWriter 连接,但它一团糟。
我认为我必须使用与读取函数完全不同的方法。那里有人可以分享他的 C#,Xamarin 天才吗?提前致谢。
最佳答案
您可以使用 System.Net 库进行联网。你也没有这样做异步。您应该使按钮功能异步,如下所示。把你编辑框的内容放到string content string里就行了。如果您还有其他问题,请告诉我。我也为您包含了 using 语句。您可以在 nuget 上获取 system.http。
https://www.nuget.org/packages/Microsoft.Net.Http/
using System;
using System.Text;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
async Task<string> ShowRemoteStringFile(string readUrl){
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", Username, Password))));
httpClient.DefaultRequestHeaders.Add("Accept", "text/plain; charset=UTF-8");
var body = new StringContent("your http post body text", Encoding.UTF8, "application/json");
Task<System.Net.Http.HttpResponseMessage> r = httpClient.PostAsync("YOUR_URL", body);
// do stuff while waiting for response to come back
var response = await r; //await the request to return a result from the server
var responseContent = response.Content;
if (response.IsSuccessStatusCode){
//Do stuff with the response content
}
}
现在让你的按钮异步,这样你就可以在按钮事件中等待:
btnRead.Click += async (sender, e) =>
{
await ShowRemoteStringFile("string");
};
如果您有任何问题,请告诉我 :)
关于c# - 如何使用 EditText 字段(纯文本)的输入在服务器上编写/创建文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51784148/