如何使用 EditText 字段(纯文本)的输入 write/create 服务器上的文本文件?

How to write/create a text file on a server with the input of a EditText field (plaintext)?

所以我有从服务器读取的功能:

        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"); 
};

如果您有任何问题,请告诉我:)