安卓网络框架,上传图片花图,上传状态411被服务器驳回

先看下一开始使用的网络框架核心代码:

private Message doPost(final String url, final Map<String, String> params, final Map<String, InputStream> inputStreams,final InterCallback callback) {
		long startTime = System.currentTimeMillis();
		Message message=new Message();
		String BOUNDARY = java.util.UUID.randomUUID().toString();
		String PREFIX = "--", LINEND = "\r\n";
		String CHARSET = XHConf.in().net_encode;
		HttpURLConnection conn=null;
		try {
//			if(url.indexOf("Upload/imgs")>-1) Thread.sleep(130*1000);
			URL uri = new URL(url);
			conn = (HttpURLConnection) uri.openConnection();
			conn.setDoInput(true);// 允许输入
			conn.setDoOutput(true);// 允许输出
			conn.setUseCaches(false);
			conn.setRequestMethod("POST"); // Post方式
			conn.setConnectTimeout(XHConf.in().net_timeout*2);
			conn.setReadTimeout(XHConf.in().net_timeout * 10);
			//设置header
			Map<String,String> header = callback.getReqHeader(new HashMap<String, String>(),url,params);
			UtilLog.print(XHConf.in().log_tag_net,"d","------------------REQ_POST------------------\n"+url+"\n"+params+";"+inputStreams+"\nheader:"+header.toString());
			for (Map.Entry<String, String> map : header.entrySet()) {
				conn.setRequestProperty(map.getKey(), map.getValue());
			}
			
			// 首先组拼文本类型的参数
			StringBuilder sb = new StringBuilder();
			if(inputStreams.isEmpty()){
				for (Map.Entry<String, String> entry : params.entrySet()) {
					sb.append(entry.getKey() + "=" +  URLEncoder.encode(entry.getValue(),XHConf.in().net_encode) + "&");
				}
				if(sb.length() > 1)
					sb.deleteCharAt(sb.length()-1);
				conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			}else{
				for (Map.Entry<String, String> entry : params.entrySet()) {
					sb.append(PREFIX);
					sb.append(BOUNDARY);
					sb.append(LINEND);
					sb.append("Content-Disposition: form-data; name=\"" + entry.getKey() + "\"" + LINEND);
					sb.append("Content-Type: text/plain; charset=" + CHARSET + LINEND);
					sb.append("Content-Transfer-Encoding: 8bit" + LINEND);
					sb.append(LINEND);
					sb.append(entry.getValue());
					sb.append(LINEND);
				}
				conn.setRequestProperty("Content-Type", "multipart/form-data" + ";boundary=" + BOUNDARY);
			}
			DataOutputStre
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值