通过WebClient模拟post上传文件到服务器
写在前面
最近一直在研究sharepoint的文档库,在上传文件到文档库的过程中,需要模拟post请求,也查找了几种模拟方式,webclient算是比较简单的方式。
一个例子
这里写一个简单接受post请求的aspx页面,代码如下:
namespace Wolfy.UploadDemo
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string fileName = Request.QueryString["url"];
if (!string.IsNullOrEmpty(fileName))
{
Stream st = Request.InputStream;
string fileSavePath = Request.MapPath("~/upload/") + fileName;
byte[] buffer=new byte[st.Length];
st.Read(buffer, , buffer.Length);
if (!File.Exists(fileSavePath))
{
File.WriteAllBytes(fileSavePath, buffer);
} }
}
}
}
这里使用QueryString接收url参数,使用请求的输入流接受文件的数据。
然后,使用webclient写一个模拟请求的客户端,代码如下:
namespace Wolfy.UploadExe
{
class Program
{
static void Main(string[] args)
{
WebClient client = new WebClient();
client.QueryString.Add("url", "1.png"); using (FileStream fs = new FileStream("1.png", FileMode.Open))
{
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, , buffer.Length);
client.UploadData("http://localhost:15887/Default.aspx", buffer);
} }
}
}
调试状态运行aspx,然后运行exe控制台程序
如果有验证信息,可以加上这样一句话:
client.Credentials = new NetworkCredential("用户名", "密码", "域");
总结
由于目前做的项目,移动端app不能提供用户名和密码,必须使用证书进行认证,发现webclient无法支持。就采用HttpWebRequest类进行模拟了。关于它的使用是下文了。
通过WebClient模拟post上传文件到服务器的更多相关文章
- c# 模拟POST上传文件到服务器
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...
- Java模拟http上传文件请求(HttpURLConnection,HttpClient4.4,RestTemplate)
先上代码: public void uploadToUrl(String fileId, String fileSetId, String formUrl) throws Throwable { St ...
- ApiPost接口调试工具模拟Post上传文件(中文版Postman)
ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工具.它支持模拟POST.GET.PUT等常见请求,是后台接口开发者或前端.接口测试人员不可多得的工具 . A ...
- WPF上传文件到服务器
利用WebClient 上传文件到服务器 创建一个空网站,创建一个UploadFile.aspx项, 服务器报500错误:检查文件保存路径是否存在,检查文件大小限制 protected void Pa ...
- C 上传文件到服务器(含接收端源码)
本文demo下载地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1067 实例向大家展示了如何用Visua ...
- C# FTP上传文件至服务器代码
C# FTP上传文件至服务器代码 /// <summary> /// 上传文件 /// </summary> /// <param name="fileinfo ...
- Android上传文件至服务器(上)
每一次都不能上首页,真悲催..管理员让我上一次首页? 很多时候我更愿意一个人写代码,与其在垃圾代码上改改改,我更愿意直接重构. 整洁的代码简单直接.整洁的代码如同优美的散文.整洁的代码从不隐藏设计者的 ...
- android上传文件到服务器
package com.spring.sky.image.upload.network; import java.io.DataOutputStream; import java.io.File; i ...
- Android端通过HttpURLConnection上传文件到服务器
Android端通过HttpURLConnection上传文件到服务器 一:实现原理 最近在做Android客户端的应用开发,涉及到要把图片上传到后台服务器中,自己选择了做Spring3 MVC HT ...
随机推荐
- Vue(八) 数字输入框组件案例
数字输入框是对普通输入框的扩展,用来快捷输入一个标准的数字,如图: 代码: <div id="app"> <input-number v-model=" ...
- 微信小程序onLaunch修改globalData的值
//app.js App({ onLaunch: function (options) { //设置场景值到缓存中: //wx.setStorageSync("scene", op ...
- CSS-技巧
1.input框的问题,开关默认缓存 autocomplete = "on/off" ,在选择缓存的情况下,input背景会变为浅黄色,去掉只需要一行代码 2.input的属性re ...
- css图形——椭圆
在css中,我们也使用border-radius属性来实现椭圆 语法 border-radius:x/y; 说明: x表示圆角的水平半径,y表示圆角的垂直半径. 例如:border-radius:30 ...
- python: super原理
super() 的入门使用 在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了,可通过使用 super 来实现,比如: ...
- 2.2使用urllib的简单传输
使用urllib传输文件 from urllib.request import urlopen filename = 'new_1.py' password = 'password' #如果设置密码 ...
- Hashmap的学习整理
这是我大致了解Hashmap的第一个博客:https://www.cnblogs.com/chengxiao/p/6059914.html 我将摘录里面的重点: 哈希表的主干就是数组 存储位置 = f ...
- ubuntu 使用cron设置定时启动任务
介绍 cron,是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业. 在Ubuntu server 下,cron是被默认安装并启动的:如果没有启动,自行设置并启动(chkconfig\s ...
- php优秀框架codeigniter学习系列——CI_Router类学习
这篇文章主要介绍CI核心框架工具类CI_Router. 如果说CI_URI类是用来解析URI,那么CI_Router类就应该是根据解析出来的URI来决定究竟访问哪一个文件和哪一个function. 详 ...
- 判断是不是微信浏览器和QQ内置浏览器
is_weixn() { let ua = navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == "mi ...