一个简单的webService的POST用法(未验证)

详细步骤:
  1. 创建请求

    • 通过 WebRequest.Create 方法创建一个 HttpWebRequest 对象。
  2. 设置请求属性

    • 设置请求方法(如 POST)。
    • 设置请求头信息(如 ContentTypeContentLength)。
  3. 获取请求流

    • 调用 GetRequestStream 方法获取一个用于写入请求数据的流对象。
  4. 写入数据

    • 使用获取的流对象将数据写入请求主体。
  5. 发送请求

    • 关闭流以表示数据写入完成,然后发送请求。
string paraUrlCoded = "key1=value1&key2=value2";
byte[] payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com/submit");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = payload.Length;

// 获取请求流并写入数据
using (Stream writer = request.GetRequestStream())
{
    writer.Write(payload, 0, payload.Length);
}

// 发送请求并获取响应
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
    string responseText = reader.ReadToEnd();
    Console.WriteLine(responseText);
}

 表单数据请求

string paraUrlCoded = "key1=value1&key2=value2";
byte[] payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
request.ContentType = "application/x-www-form-urlencoded";

 JSON数据请求

string jsonData = "{\"key1\":\"value1\", \"key2\":\"value2\"}";
byte[] payload = System.Text.Encoding.UTF8.GetBytes(jsonData);
request.ContentType = "application/json";

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个万能客户端通常需要以下功能: 1. 支持HTTP和HTTPS协议; 2. 支持GET、POST、PUT、DELETE等HTTP请求方法; 3. 支持HTTP Basic认证; 4. 支持请求头和请求体的设置; 5. 支持请求参数的设置; 6. 支持响应状态码、响应头和响应体的获取; 7. 支持文件上传和下载; 8. 支持SSL证书验证; 9. 支持代理设置。 下面是一个基于Python的简单实现,使用requests库: ```python import requests class UniversalClient: def __init__(self): self.session = requests.Session() def _prepare_request(self, method, url, headers=None, params=None, data=None, files=None, auth=None, timeout=None, verify=True, proxies=None): req = requests.Request(method, url, headers=headers, params=params, data=data, files=files, auth=auth) return self.session.prepare_request(req) def request(self, method, url, headers=None, params=None, data=None, files=None, auth=None, timeout=None, verify=True, proxies=None): req = self._prepare_request(method, url, headers=headers, params=params, data=data, files=files, auth=auth, timeout=timeout, verify=verify, proxies=proxies) resp = self.session.send(req, timeout=timeout, verify=verify, proxies=proxies) return resp def get(self, url, headers=None, params=None, auth=None, timeout=None, verify=True, proxies=None): return self.request('GET', url, headers=headers, params=params, auth=auth, timeout=timeout, verify=verify, proxies=proxies) def post(self, url, headers=None, params=None, data=None, files=None, auth=None, timeout=None, verify=True, proxies=None): return self.request('POST', url, headers=headers, params=params, data=data, files=files, auth=auth, timeout=timeout, verify=verify, proxies=proxies) def put(self, url, headers=None, params=None, data=None, files=None, auth=None, timeout=None, verify=True, proxies=None): return self.request('PUT', url, headers=headers, params=params, data=data, files=files, auth=auth, timeout=timeout, verify=verify, proxies=proxies) def delete(self, url, headers=None, params=None, data=None, files=None, auth=None, timeout=None, verify=True, proxies=None): return self.request('DELETE', url, headers=headers, params=params, data=data, files=files, auth=auth, timeout=timeout, verify=verify, proxies=proxies) ``` 使用示例: ```python client = UniversalClient() # 发送GET请求 resp = client.get('http://example.com') # 发送POST请求,带JSON请求体和请求头 headers = {'Content-Type': 'application/json'} data = {'name': 'John', 'age': 25} resp = client.post('http://example.com', headers=headers, data=data) # 发送带文件的POST请求 files = {'file': open('example.txt', 'rb')} resp = client.post('http://example.com/upload', files=files) # 发送带HTTP Basic认证的请求 auth = ('username', 'password') resp = client.get('http://example.com', auth=auth) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值