实习记录

两个小接口,半天完成,一天调试,两天交接。这几天搞得心都碎了,本地拿到数据都是正常的,放到测试服上就不正常了,搞了一天才发现是传输的时候data的类型被弄成String型了。改成Object就行。另外在写测试接口的时候之前没有经验,都是把所有的方法都打开,测试的时候浪费了好多时间在等待上,以后要测试那个方法就把那个的@Test打开就行,其他都注释掉就行。另外本地也能模拟测试网络传输的数据,不用一定放在测试服才能测试网络传输拿到的数据

public class HttpRequestUtils{
/**
         * HTTP Post 获取内容
         * @param url  请求的url地址 
         * @param params 请求的参数
         * @param charset    编码格式
         * @return    页面内容
         */
 public static String doPost(String url,Map<String,String> params,String charset){
            if(url==null||"".equals(url)){
                return null;
            }
            try {
                List<NameValuePair> pairs = null;
                if(params != null && !params.isEmpty()){
                    pairs = new ArrayList<NameValuePair>(params.size());
                    for(Map.Entry<String,String> entry : params.entrySet()){
                        String value = entry.getValue();
                        if(value != null){
                            pairs.add(new BasicNameValuePair(entry.getKey(),value));
                        }
                    }
                }
                HttpPost httpPost = new HttpPost(url);
                if(pairs != null && pairs.size() > 0){
                    httpPost.setEntity(new UrlEncodedFormEntity(pairs,CHARSET));
                }
                CloseableHttpResponse response = httpClient.execute(httpPost);
                int statusCode = response.getStatusLine().getStatusCode();
                if (statusCode != 200) {
                    httpPost.abort();
                    StringBuffer msg=new StringBuffer();
                    if(params!=null&&!params.isEmpty()){
	                    for(Map.Entry<String,String> entry : params.entrySet()){
	                    	msg.append(entry.getKey()).append("=").append(entry.getValue()).append(" ");
	                    }
                    }
                    throw new RuntimeException("HttpClient,error status code :" + statusCode+" url:"+url+" params:"+msg.toString());
                }
                HttpEntity entity = response.getEntity();
                String result = null;
                if (entity != null){
                    result = EntityUtils.toString(entity, "utf-8");
                }
                EntityUtils.consume(entity);
                response.close();
                return result;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }
String result = HttpRequestUtils.doPost(url, param);


你可能感兴趣的:(实习记录)