c# - 如何使用 EditText 字段(纯文本)的输入在服务器上编写/创建文本文件?

标签 c# android xamarin xamarin.android ftpwebrequest

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

        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/

相关文章:

android - 自定义边框布局包含半个圆

java - EditText 自动保存设备旋转后的值

java - 如何将上下文菜单添加到表格布局?

iOS 应用程序在安装和中断安装期间显示错误警报

c# - 如何将 unicode 编码的数据转换为 Devanagri(印地语)文本

c# - WPF:绑定(bind)到 ICommand 的 TreeViewItem

java - 使用跨平台语言开发android有哪些缺点?

xamarin - 如何在 Xamarin.Forms 中存储应用设置

c# - 公式和数学表达式解析器算法

c# - 如何有条件地调用具有约束的泛型方法?