草庐IT

invoke-webrequest

全部标签

c# - 在 Pipeline.Invoke 抛出后在 C# 中捕获 Powershell 输出

我正在从C#应用程序运行Powershell测试脚本。由于错误的cmdlet导致pipe.Invoke()引发异常,脚本可能会失败。我能够捕获我需要的有关异常的所有信息,但我希望能够显示脚本到那时为止的输出。我没有任何运气,因为在抛出异常时结果似乎为空。有什么我想念的吗?谢谢!m_Runspace=RunspaceFactory.CreateRunspace();m_Runspace.Open();Pipelinepipe=m_Runspace.CreatePipeline();pipe.Commands.AddScript(File.ReadAllText(ScriptFile));

c# - 通过 P/Invoke 调用 GetGUIThreadInfo

我想将键盘输入发送到另一个进程中的窗口,而不将该窗口置于前台。我可以使用PostMessage伪造WM_KEYDOWN和WM_KEYUP;我只需要知道哪个窗口句柄应该接收键盘输入——即类似GetFocus的东西,但对于另一个非事件应用程序。GetGUIThreadInfoAPI看起来很有前途——它为另一个应用程序返回一个hwndFocus。但是我没有运气让它在我的64位操作系统上从C#运行。我已经复制(然后进一步调整)来自pinvoke.net的声明,但我得到的只是一个通用错误代码(下面有更多详细信息)。我在调用GetGUIThreadInfo之前设置了cbSize,因此我避免了最明显

c# - P/Invoke 到 Mono 上动态加载的库

我正在编写一个使用一些非托管代码的跨平台.NET库。在我的类的静态构造函数中,检测到平台并从嵌入式资源中提取适当的非托管库并保存到临时目录,类似于anotherstackoverflowanswer中给出的代码。.为了在库不在PATH中时可以找到它,我在将它保存到临时文件后显式加载它。在Windows上,这适用于来自kernel32.dll的LoadLibrary。我正尝试在Linux上对dlopen执行相同的操作,但在稍后加载P/Invoke方法时出现了DllNotFoundException。我已验证库“libindexfile.so”已成功保存到临时目录,并且对dlopen的调用

c# - WebRequest 相当于 CURL 命令

我正在用头撞墙试图将有效的curl命令转换为c#WebRequest。我已经阅读了很多帖子,我非常确定我的代码是正确的,但它仍然无法工作。谁能看出我做错了什么?这是有效的curl命令:curl-k-ux:reallylongstring-H"Content-Type:application/json"https://api.somewhere.com/desk/external_api/v1/customers.json这是我用C#编写的代码:WebRequestwrGETURL;wrGETURL=WebRequest.Create("https://api.somewhere.com

c# - 将 .NET P/Invoke 代码组织到 Win32 API 的最佳实践

我正在.NET中重构一个庞大而复杂的代码库,它大量使用P/InvoketoWin32API。项目的结构不是最好的,我发现到处都是DllImport语句,经常重复相同的功能,并且还以多种方式声明:导入指令和方法有时声明为公共(public)的,有时声明为私有(private)的,有时声明为静态的,有时声明为实例方法。我担心重构可能会产生意想不到的后果,但这可能是不可避免的。是否有我可以遵循的记录在案的最佳做法可以帮助我解决问题?我坚持要组织一个静态/共享的Win32P/InvokeAPI类,在一个文件中列出所有这些方法和关联的常量...编辑user32DLL有超过70个导入.(代码库由2

c# - 我可以使用 .NET Framework 从指定的 ip 地址发送 webrequest 吗?

我有一个有多个IP地址的服务器。现在我需要用http协议(protocol)与几个服务器通信。每个服务器只接受来self的服务器指定ip地址的请求。但是在.NET中使用WebRequest(或HttpWebRequest)时,请求对象会自动选择一个ip地址。无论如何,我找不到将请求与地址绑定(bind)的方法。有什么办法吗?或者我必须自己实现一个webrequest类? 最佳答案 您需要使用ServicePoint.BindIPEndPointDelegate回调。http://blogs.msdn.com/b/malarch/ar

c# - 带 Cookie 的 WebRequest HTTP POST(来自 curl 脚本的端口)

IBMRTCRESTfulapi提供了一个用于向服务器进行身份验证的shell脚本示例:COOKIES=./cookies.txtUSER=my_userPASSWORD=my_passwordHOST="https://myJazzServer:9092/jazz"curl-k-c$COOKIES"$HOST/authenticated/identity"curl-k-L-b$COOKIES-c$COOKIES-dj_username=$USER-dj_password=$PASSWORD"$HOST/authenticated/j_security_check"这非常有效,但是我需

c# - 为什么这个 WebRequest 代码很慢?

我请求了100页,所有404。我写了{vars=DateTime.Now;for(inti=0;i两次运行显示它需要00:00:30.7968750和00:00:26.8750000。然后我尝试了firefox并使用以下代码for(vari=0;i");使用我的比赛时间并计算它大约是4秒。4秒比我的应用程序快6.5-7.5秒。我计划扫描数千个文件,因此花费3.75小时而不是30分钟将是一个大问题。我怎样才能使这段代码更快?我知道有人会说firefox缓存图像,但我想说1)它仍然需要检查远程服务器的header以查看它是否已更新(这是我希望我的应用程序执行的操作)2)我不是收到正文,我的

c# - 带有文件和参数的 WebRequest POST

我正在尝试使用.NET/C#上传文件并将一些参数发送到我的网站。在阅读了一些执行一些参数或文件的教程后,我尝试将它们组合起来,但没有成功。这是我尝试这样做的方法:WebRequestreq=WebRequest.Create(baseURL+"upload");req.Credentials=newNetworkCredential(username,password);Stringboundary="B0unD-Ary";req.ContentType="multipart/form-data;boundary="+boundary;req.Method="POST";((HttpW

c# - 多个 Control.BeginInvoke/Invoke 调用会按顺序执行吗?

我需要知道Control.BeginInvoke和Control.Invoke调用是否会按照它们被调用的顺序执行。我有以下场景:UI线程被阻塞WCF线程调用Control.BeginInvokeWCF线程调用Control.Invoke(或可能再次调用BeginInvoke)UI线程未阻塞??步骤1-4的执行顺序保证按照显示的顺序(从技术上讲,顺序不能保证是那样,但我的问题只有在顺序如图所示时才相关)。我的问题是第3步中的Invoke/BeginInvoke调用是否有可能在第2步中的BeginInvoke调用之前执行?此外,请不要评论阻​​塞UI线程。 最佳