Tag: 发布

WebRequest POST同时包含文件和参数

我正在尝试使用.NET / C#上传文件并将一些参数发送到我的网站。 阅读了一些做了一些参数或文件的教程后,我尝试过,但没有成功地将它们组合起来。 以下是我尝试这样做的方法: WebRequest req = WebRequest.Create(baseURL + “upload”); req.Credentials = new NetworkCredential(username, password); String boundary = “B0unD-Ary”; req.ContentType = “multipart/form-data; boundary=” + boundary; req.Method = “POST”; ((HttpWebRequest)req).UserAgent = “UploadTester v0.1”; string postData = “–” + boundary + “\nContent-Disposition: form-data\n”; postData += “myId=123&someFk=456”; postData += “\n–” + boundary + “\nContent-Disposition: form-data; name=\”file\” filename=\”upload.pdf\” […]

发送multipart / form-data内容类型请求

以下http post请求使用multipart / form-data内容类型发送数据。 —————————–27311326571405\r\nContent-Disposition: form-data; name=”list”\r\n\r\n8274184\r\n—————————–27311326571405\r\nContent-Disposition: form-data; name=”list”\r\n\r\n8274174\r\n—————————–27311326571405\r\nContent-Disposition: form-data; name=”list”\r\n\r\n8274178\r\n—————————–27311326571405\r\nContent-Disposition: form-data; name=”antirobot”\r\n\r\n2341234\r\n—————————–27311326571405\r\nContent-Disposition: form-data; name=”votehidden”\r\n\r\n1\r\n—————————–27311326571405–\r\n List是输入名称。 8274184,8274174,8274178等是输入值。 但是什么是27311326571405,27311326571405 ……等等? 我想用c#发送相同的请求,但我真的不知道在哪里可以得到这个数字。

Visual Studio – 调试与发布

我在VS 2008中构建了一个针对.NET 2.0的Windows服务。我将其作为控制台应用程序运行以进行调试。 控制台应用程序运行良好。 我把它放在我的本地计算机上作为服务,在调试模式下编译,仍然工作得很好。 我现在准备发布了,突然,当我将其设置为发布模式时,服务编译并安装,但没有任何反应。 (根本没有运行中的代码)。 我意识到发布与调试模式是属性配置设置,但似乎在发布模式下,即使我检查定义DEBUG常量,取消选中Optimize代码,并将Debug info设置为’full’,它仍然无效。 将它重新设置为调试,它再次像魅力一样工作。 (作为旁注,我尝试将目标框架重置为3.5,以确保不是问题) 所以我的问题(按重要性排序)是这些: 将以任何方式使用我的“调试”版本会导致任何问题吗? 除了我已经尝试改变的三个设置之外,调试和发布之间的设置有何不同? 这对我来说似乎是一个奇怪的错误,并激起了我的好奇心。 知道是什么会导致这个吗? 编辑:应该提一下,我已经在使用自定义安装程序。 基本上我编译程序(在调试或发布中),然后使用相应的安装程序安装它。

计算对象增量

我正在开发一个客户端和服务器共享对象模型的应用程序,对象图可能变得相当大。 要将对象从客户端保存到服务器,理想情况下我只希望通过线路发送差异,以最大限度地减少网络流量。 我可以在服务器上提取原始对象图并将delta应用于它 想知道是否有任何工具或项目,或者是否有任何人有过做这样的事情的经验.. 非常感谢

代码在发布与调试模式下的行为不同

在Release模式和debug模式下运行时,我们有一些unit testing失败。 如果我在发布模式下附加调试器,则测试通过。 有太多的代码要在这里发布,所以我真的只是在寻找调试发布模式问题的最佳实践。 我检查过: DEBUG和RELEASE预处理器指令,但我没有找到任何指令。 条件方法 解决方案:在这种情况下,这是因为我在比较浮点变量是否相等。 在没有重大重构的情况下,我无法将浮点数更改为十进制数,因此我添加了一个扩展方法: public static class FloatExtension { public static bool AlmostEquals(this float f1, float f2, float precision) { return (Math.Abs(f1 – f2) <= precision); } public static bool AlmostEquals(this float f1, float f2) { return AlmostEquals(f1, f2, .00001f); } public static bool AlmostEquals(this float? f1, float? f2) { […]

使用C#发送POST数据

这是我尝试用来将POST数据发送到URL并恢复其响应的方法: public string sendPOST(string URL, string postData) { byte[] byteArray; Stream webpageStream; StreamReader webpageReader; String webpageContent; byteArray = Encoding.UTF8.GetBytes(postData); _webRequest = WebRequest.Create(URL); _webRequest.Method = “POST”; _webRequest.ContentType = “application/x-www-form-urlencoded”; _webRequest.ContentLength = byteArray.Length; webpageStream = _webRequest.GetResponse().GetResponseStream(); webpageStream.Write(byteArray, 0, byteArray.Length); webpageStream.Close(); webpageReader = new StreamReader(webpageStream); webpageContent = webpageReader.ReadToEnd(); return webpageContent; } 我从MSDN网页上获得了很多这样的代码,所以我知道我大致走在正确的轨道上……但是当我使用以下方法调用该方法时: string test = webHelper.sendPOST(“http://google.com”, “var=1”); MessageBox.Show(test); […]

如何从C#提交multipart / form-data HTTP POST请求

使用C#中的multipart / form-data内容类型提交HTTP POST请求的最简单方法是什么? 必须有一个比建立我自己的请求更好的方法。 我问的原因是使用这个api将照片上传到Flickr: http://www.flickr.com/services/api/upload.api.html

WP7(windows phone 7)HttpWebRequest丢失POST数据

我发送了大量的POST数据(超过5000个字符),似乎WP7 HttpWebRequest正在丢失这个过程中的一些内容…… 数据是png转换为字节数组,然后转换为base64字符串。 如果我的数据是4941个字符长,它将只发送1448个字符,请求的内容长度(通过wiresharkvalidation)很好(Content-Length:4991)。 我如何发送数据: void SendPost() { // Create the web request object HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); webRequest.Method = “POST”; webRequest.ContentType = “application/x-www-form-urlencoded”; // Start the request webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest); } void GetRequestStreamCallback(IAsyncResult asynchronousResult) { HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState; // End the stream request operation Stream postStream = webRequest.EndGetRequestStream(asynchronousResult); // Create the post data […]

使用C#和WebRequest上传图像?

这是Python中的工作代码(使用cURL): #!/usr/bin/python import pycurl c = pycurl.Curl() values = [ (“key”, “YOUR_API_KEY”), (“image”, (c.FORM_FILE, “file.png”))] # OR: (“image”, “http://example.com/example.jpg”))] # OR: (“image”, “BASE64_ENCODED_STRING”))] c.setopt(c.URL, “http://imgur.com/api/upload.xml”) c.setopt(c.HTTPPOST, values) c.perform() c.close() 这是我在C#中所拥有的: public void UploadImage() { //I think this line is doing something wrong. //byte[] x = File.ReadAllBytes(@”C:\Users\Sergio\documents\visual studio 2010\Projects\WpfApplication1\WpfApplication1\Test\hotness2.jpg”); //If I do it like this, using […]

发布Web应用程序时,AfterPublish脚本无法运行

我有一个ASP.NET网络应用程序,当我进行更改或修复错误时,我发布到我们的网站。 我们希望自动将项目文件的备份保存到我们的服务器(与SVN签入分开),因此我编写了一个批处理文件,将整个项目从本地驱动器复制到服务器。 批处理文件在独立运行时正常工作,因此不是问题。 如果这是一个问题,批处理文件不在项目的路径中。 然后我将这些行添加到结束标记正上方的.csproj文件中: 这遵循MSDN中用于覆盖目标的指令。 我也尝试了这个SO问题中概述的方法。 看起来像这样: 这也行不通。 为了完整性,这里是批处理文件,它非常简单,但如果有人感兴趣,我可以解释一下这些开关: xcopy C:\deg\ASP.NET\OnlineRMA_SinglePage\*.* /cherkyDi I:\common\AppDevBranch\Service\rma 我使用Build> Publish RMA在VS2010中发布,效果很好。 它只是备份脚本永远不会运行。 唯一的共性是脚本本身。 我见过其他使用源dir到目标目录的副本的例子,但我想我明白你可以通过Exec命令调用外部脚本吗? 这是我为该方法找到的SO问题的例子 。 我确定我错过了一些显而易见的东西,但是我第二天正在搞一些似乎非常直接的东西,所以我错过了什么?