该方法GeckoWebBrowser.Navigate()
将其参数传递给一个nsIWebNavigation
实例,该实例是XPCOM
运行浏览器实例的接口,在这种情况下使用XULRunner 1.8
(它很旧)。
不幸的是, 的Navigate()
方法GeckoWebBrowser
没有为postData
;提供重载。它只是通过Intptr.Zero
了那个论点。
我无法测试它,但是如果您在 中创建这样的新方法GeckoWebBrowser.cs
,您可以使用包含发布数据的字符串来调用它:
public bool Navigate(string url, string postData, GeckoLoadFlags loadFlags)
{
if (url == null)
{
throw new ArgumentNullException("url");
}
if (!IsHandleCreated)
{
throw new InvalidOperationException("Cannot call Navigate() before the window handle is created.");
}
if (IsBusy)
{
this.Stop();
}
return WebNav.LoadURI(url, (uint)loadFlags, null, GetStreamFromString(postData), IntPtr.Zero) == 0;
}
public static Stream??? CreateStreamFromString(string input)
{
return new StreamReader???(input);
}
请注意,该LoadURI
方法接受一个nsIInputStream
我不知道的参数。尝试找到参数类型以及如何实例化它,并修复CreateStreamFromString()
方法以返回和实例化正确的类型。
另请查看参数的文档postData
:
如果 URI 对应于 HTTP 请求,则此流直接附加到 HTTP 请求标头。它可能带有额外的 HTTP 标头作为前缀。此流必须包含将任何 HTTP 标头与 HTTP 请求正文分开的 \r\n 序列。此参数可能为空。
但是,如果仅用于将数据发布到某个 URL,那么您可能只想使用一个WebClient
或(仅限 .NET 4.5)类。HttpClient