実習記録

2828 ワード

2つの小さなインタフェース、半日で完成し、1日でデバッグし、2日で引き継ぎます.ここ数日心が砕けて、現地でデータを手に入れるのはすべて正常で、テスト服の上に置くのは正常ではありませんて、1日やってやっと伝送であることを発見した時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);