我看到了一个内置 php 的“C”在线编译器。我正在使用 fiddler 2 工具来查看我的网络浏览器发布到服务器的内容。发送到服务器的内容如下所示:
任何人都可以告诉我,我应该在 C# 中使用 WEBCLIENT 或 WEBREQUEST 将什么发布到服务器,以便我可以生成上述文本。上面写的数字每次我发布时都会有所不同。请帮忙。
我看到了一个内置 php 的“C”在线编译器。我正在使用 fiddler 2 工具来查看我的网络浏览器发布到服务器的内容。发送到服务器的内容如下所示:
任何人都可以告诉我,我应该在 C# 中使用 WEBCLIENT 或 WEBREQUEST 将什么发布到服务器,以便我可以生成上述文本。上面写的数字每次我发布时都会有所不同。请帮忙。
正如 Vogel612 所说,数字变化是一个特征。
无论如何,要使用 WebClient 发布到服务器,您需要在引发事件UploadStringAsync
时调用该方法并编写一个处理程序。UploadStringCompleted
这是我使用多行创建的一个非常快速的 WinForms 程序,TextBox
它将 C 代码发布到编译器服务。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Web;
namespace WebClientPostForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
PostToServer();
}
public void PostToServer()
{
TxtOutput.Text += "Initialising... ";
// string is formatted like this for readability
string code = "int main()" +
"{" +
"printf(\"Hello World!\");" +
"}";
// the code is URL-encoded so that characters are escaped
string data = string.Format("code={0}&lang=c&submit=Execute", HttpUtility.UrlEncode(code));
WebClient client = new WebClient();
// I couldn't get this to work unless I set the content type
client.Headers["Content-Type"] = "application/x-www-form-urlencoded";
client.UploadStringCompleted += (sender, e) =>
{
TxtOutput.Text += string.Format("Request complete. Response: {0}", e.Result);
};
TxtOutput.Text += "Posting Data To Server... ";
client.UploadStringAsync(new Uri("http://www.compileonline.com/compile.php"), data);
}
}
}