Если можно гарантировать, что нет никаких запятых в данных, то самый простой путь состоял бы в том, чтобы, вероятно, использовать String.split.
, Например:
String[] values = myString.Split(',');
myObject.StringField = values[0];
myObject.IntField = Int32.Parse(values[1]);
могут быть библиотеки, которыми Вы могли пользоваться к справке, но это, вероятно, так просто, как можно добраться. Просто удостоверьтесь, что у Вас не может быть запятых в данных, иначе необходимо будет проанализировать их лучше.
Добавьте веб-браузер в форму. Он должен иметь имя по умолчанию «webBrowser1» - вы можете изменить его, если хотите. Установите для свойства «Visible» значение «False». Дважды щелкните строку заголовка формы, чтобы автоматически сгенерировать событие загрузки в коде.
Вызовите метод Navigate с такой сигнатурой:
void Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders);
Вот так:
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.google.com/", "_blank", Encoding.Default.GetBytes("THIS IS SOME POST DATA"), "");
}
Вы можете передать туда любой массив байтов, который хотите ... Encoding.Default.GetBytes () - это просто быстрый способ передать струна через.
Уловка состоит в том, чтобы использовать _blank для целевого кадра.
Если вы выполните ShellExecute с командой OPEN в URL-адресе, то будет создан веб-браузер по умолчанию и откроется ссылка. В качестве альтернативы вы можете вызвать Internet Explorer (снова используя ShellExecute) с добавленным URL-адресом в конце строки (так что строка, которую вы используете для ShellExecute, будет выглядеть так:
System.Diagnostics.Process.Start(@"C:\Program Files\Internet Explorer\iexplore.exe", "http://google.com");
Вы говорите о POST, но вы не можете сделать POST, указанная выше строка выполняет GET. В зависимости от того, как настроен веб-сайт, вы можете просто добавить параметры в конце URL-адреса, например:
System.Diagnostics.Process.Start(@"C:\Program Files\Internet Explorer\iexplore.exe", "http://www.google.com/search?q=bing");
Фактически, вы можете использовать process.start с опубликованными данными строки запроса:
System.Diagnostics.Process.Start("IExplore.exe", "http://localhost/file.html?foo=bar&baz=duh");
Я написал примерно следующее:
require 'rubygems'
require 'RMagick'
include Magick
image = Image.new(50, 50) {
self.background_color = "white"
}
text = Draw.new
text.annotate(image, 0,0,0,40, 'Named Colors') {
self.fill = 'black'
self.pointsize = 32
}
image.write("image.png")
Что должно быть достаточно легким для понимания. Также посмотрите документацию . Хотя это не совсем идеально, но почти все есть.
m не совсем понятно, что вы имеете в виду под словом "Post" в своем сообщении (я ассоциирую "Post" с ASP.NET), но вы можете записать html-файл во временное место с тем, что вам нравится в нем, а затем передать адрес этого файла, когда вы запускаете IE, используя описанные выше методы. лучший,Вы можете просто запустить процесс, отправив URL-адрес в Process.Start в качестве параметра. Возникла проблема при вызове StartProcess из потока графического интерфейса WebForms из-за контекста синхронизации. В моем решении для этой цели используется пул потоков. Преимущество этого решения заключается в том, что URL-адрес открывается в предпочтительном пользователем веб-браузере , которым может быть IE, Firefox и т. Д.
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming",
"CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#"),
System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
public void OpenUrl(string urlString)
{
try
{
ThreadPool.QueueUserWorkItem(delegate { StartProcess(urlString, null); });
}
catch (Exception ex)
{
log.Error("Exception during opening Url (thread staring): ", ex);
//do nothing
}
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
public void StartProcess(string processName, string arguments)
{
try
{
Process process = new Process();
process.StartInfo.FileName = processName;
if (!string.IsNullOrEmpty(arguments))
{
process.StartInfo.Arguments = arguments;
}
process.StartInfo.CreateNoWindow = false;
process.StartInfo.UseShellExecute = true;
process.Start();
}
catch (Exception ex)
{
log.ErrorFormat("Exception in StartProcess: process: [{0}], argument:[{1}], exception:{2}"
, processName, arguments, ex);
}
}