HttpURLConnection GET 返回没有具体信息时判断成功

在没有具体响应信息时,可以依据HttpURLConnection的getResponseCode()方法返回200作为GET请求成功的标准。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天用HttpURLConnection 写get 请求时,发现老是报错,后来发现了问题,记下来防止以后忘记:
/**
	 * 请求转发并返回结果
	 * 
	 * @param response
	 * @param json
	 */
	public static String transferForGet(String data,String serverUrl) {
		// 服务地址
		URL url;
		try {
			url = new URL(serverUrl);
		} catch (MalformedURLException e1) {
			Util.err(e1);
			return "fail";
		}
		// 设定连接的相关参数
		HttpURLConnection connection = null;
		String strResponse = "";
		BufferedReader reader = null;
		try {
			connection = (HttpURLConnection) url.openConnection();
			connection.connect();
			
			connection.getInputStream();
			strResponse = connection.getResponseCode()+":"+connection.getResponseMessage();
		} catch (ProtocolException e) {
			Util.err(e);
		} catch (IOException e) {
			Util.err(e);
		} finally{
			try{
				if(reader != null){
					reader.close();
				}
			}catch(Exception e){}
			try{
				connection.disconnect();
			}catch(Exception e){
				Util.err(e);
			}
		}
		if(strResponse == null || strResponse.equals(""))
			return "fail";
		return strResponse;
	}

当返回中没有信息来确定是否成功时,通过 connection.getResponseCode() 是否为200来判断是否成功


使用POST方法:

/**
	 * 请求转发并返回结果
	 * 
	 * @param response
	 * @param json
	 */
	public static String transfer(String data,String serverUrl) {
		// 服务地址
		URL url;
		try {
			url = new URL(serverUrl);
		} catch (MalformedURLException e1) {
			// TODO Auto-generated catch block
			Util.err(e1);
			return "fail";
		}
		// 设定连接的相关参数
		HttpURLConnection connection = null;
		String strResponse = "";
		BufferedReader reader = null;
		try {
			connection = (HttpURLConnection) url.openConnection();
			connection.setConnectTimeout(50 * 1000);// 10秒
			connection.setReadTimeout(50 * 1000);// 10秒
			connection.setDoOutput(true);
			connection.setRequestMethod("POST");
			connection.setRequestProperty("Content-Type",
					"text/html; charset=utf-8");
			connection.setRequestProperty("Connection", "close");
			// 输出
			OutputStreamWriter output = new OutputStreamWriter(connection
					.getOutputStream(),"UTF-8");
			output.write(data);
			output.flush();
			output.close();

			// 获取服务端的反馈
			String strLine = "";
			InputStream in = connection.getInputStream();

			reader = new BufferedReader(
					new InputStreamReader(in,"UTF-8"));

			while ((strLine = reader.readLine()) != null) {
				strResponse += strLine ;
			}
		} catch (ProtocolException e) {
			Util.err(e);
		} catch (IOException e) {
			Util.err(e);
		} finally{
			try{
				if(reader != null){
					reader.close();
				}
			}catch(Exception e){}
			try{
				connection.disconnect();
			}catch(Exception e){
				Util.err(e);
			}
		}
		if(strResponse == null || strResponse.equals(""))
			return "fail";
		return strResponse;
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值