接口对接数据通信问题

接口对接成功,可以通信,但数据在那边处理出现问题可是又看不到
我使用的是writeBytes()方法发送数据,会不会有问题
DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());
dataout.writeBytes(parm);//发送数据
parm是json格式字符串:
parm={"eid":"L18QMX0000001","uid":"123123","type":"validate","data":{user:"123456"},"sign":"d4878baa9b5b6a7185246570ec376a36"}
图片说明
或者我怎样知道我发送过去的数据是什么?

Socket client=new Socket("localhost",8888);
String json=dataToJson(getData());
BufferedWriter bw=new BufferedWriter(
new OutputStreamWriter(client.getOutputStream()));
bw.write(json);
bw.flush();
bw.close();
//===================
Socket client =server.accept();
BufferedInputStream bus=new BufferedInputStream(client.getInputStream());
byte[] b=new byte[20480];
int len=bus.read(b);
String requestInfo=new String(b,0,len).trim();
System.out.println(requestInfo);
//===========服务器=======结果
{"errorCode":0,"reason":"ok","result":[{"id":1,"question":"12344556","answer":"12344556","item1":"12344556","item2":"12344556","item3":"12344556","item4":"12344556","explains":"12344556","url":"00000000000"}]}

什么连接,走网络的可以用wireshark抓

code 1002是什么意思,错误码是怎么定义的

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
BufferedWriter 可直接处理字符串纯文本。
DataOutputStream 是处理 8个基本数据类型和String类型的。是带格式的。

dataout.writeUTF(parm); 直接写文本输出。

发送端:
DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());
dataout.writeUTF(parm);;//发送数据
接受端(服务器端):
BufferedInputStream bus=new BufferedInputStream(client.getInputStream());
int len=0;
byte[] flush=new byte[20480];
len=bus.read(flush);
System.out.println(len);
System.out.println(new String(flush,0,len));

如果是http协议, 就用apache httpclient或者spring的resttemplate
传输json设置http header
content-type application/json

写出用:DataOutputStream,读取:也要DataInputStream.他们是有格式的。
你写出不要用DataOutputStream写出。读取这端:你参考下
//从服务器读取 json数据
public static String requestJson(String httpUrl, String httpArg) {
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?" + httpArg;

    try {
        URL url = new URL(httpUrl);
        HttpURLConnection connection = (HttpURLConnection) url
                .openConnection();
        connection.setRequestMethod("GET");
        // 填入apikey到HTTP header

// connection.setRequestProperty("apikey", "9e2741ac99724e74b50158d5b63e85f4");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}

我刚去看了,apache,HttpServletResponse response,jdk,它采用的是response.getWriter().println(json); 里面实际是PrintWriter 流的println(String x).
你去看看。

//客户端
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;

import mine.jktk.bean.JsonRootBean;
import mine.jktk.bean.Result;

public class ClientDemo01 {
public static void main(String[] args) throws Exception, IOException {
Socket client=new Socket("localhost",8888);
String json=dataToJson(getData());
/*BufferedWriter bw=new BufferedWriter(
new OutputStreamWriter(client.getOutputStream()));
bw.write(json);
bw.flush();
bw.close();*/
PrintWriter pw=new PrintWriter(client.getOutputStream(),true);
pw.write(json);
System.out.println(json);
//=====
}
public static List getData(){
int id=1;
String question="12344556";
String answer="12344556";
String item1="12344556";
String item2="12344556";
String item3="12344556";
String item4="12344556";
String explains="12344556";
String url="00000000000";
Result result=new Result(id,question,answer,item1,item2,item3,item4,
explains,url);
List list=new ArrayList();
list.add(result);
return list;
}
public static String dataToJson(List list){
JsonRootBean jrootb=new JsonRootBean();
jrootb.setErrorCode(0);
jrootb.setReason("ok");
jrootb.setResult(list);
Gson gs=new Gson();
String json=gs.toJson(jrootb);
return json;
}
}
//==============java bean
public class Result {

private int id;
private String question;
private String answer;
private String item1;
private String item2;
private String item3;
private String item4;
private String explains;
private String url;

public Result() {
    super();
}

public Result(int id, String question, String answer, String item1, String item2, String item3, String item4,
        String explains, String url) {
    this.id = id;
    this.question = question;
    this.answer = answer;
    this.item1 = item1;
    this.item2 = item2;
    this.item3 = item3;
    this.item4 = item4;
    this.explains = explains;
    this.url = url;
}

public void setId(int id) {
     this.id = id;
 }
 public int getId() {
     return id;
 }

public void setQuestion(String question) {
     this.question = question;
 }
 public String getQuestion() {
     return question;
 }

public void setAnswer(String answer) {
     this.answer = answer;
 }
 public String getAnswer() {
     return answer;
 }

public void setItem1(String item1) {
     this.item1 = item1;
 }
 public String getItem1() {
     return item1;
 }

public void setItem2(String item2) {
     this.item2 = item2;
 }
 public String getItem2() {
     return item2;
 }

public void setItem3(String item3) {
     this.item3 = item3;
 }
 public String getItem3() {
     return item3;
 }

public void setItem4(String item4) {
     this.item4 = item4;
 }
 public String getItem4() {
     return item4;
 }

public void setExplains(String explains) {
     this.explains = explains;
 }
 public String getExplains() {
     return explains;
 }

public void setUrl(String url) {
     this.url = url;
 }
 public String getUrl() {
     return url;
 }
@Override
public String toString() {
    return "Result [id=" + id + ", question=" + question + ", answer=" + answer + ", item1=" + item1 + ", item2="
            + item2 + ", item3=" + item3 + ", item4=" + item4 + ", explains=" + explains + ", url=" + url + "]";
}

}
import java.util.List;
//import org.codehaus.jackson.annotate.JsonIgnoreProperties;
//import org.codehaus.jackson.annotate.JsonProperty;
/**

  • Auto-generated: 2017-03-17 15:37:13 *
  • @author bejson.com (i@bejson.com)
  • @website http://www.bejson.com/java2pojo/
    */
    public class JsonRootBean {
    //@JsonProperty("error_code")
    //此处属性的声明顺序,决定json数据的对应字段的顺序
    private int errorCode;
    private String reason;
    private List result;
    public void setResult(List result) {
    this.result = result;
    }
    public List getResult() {
    return result;
    }

    public void setErrorCode(int errorCode) {
    this.errorCode = errorCode;
    }
    public int getErrorCode() {
    return errorCode;
    }

    public void setReason(String reason) {
    this.reason = reason;
    }
    public String getReason() {
    return reason;
    }
    @Override
    public String toString() {
    return "JsonRootBean [errorCode=" + errorCode + ", reason=" + reason + ", result=" + result + "]";
    }

}

//服务器端=======我试过了,可以接受
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerDemo1 {
private ServerSocket ser=null;
public static void main(String[] args) {
new ServerDemo1().start();
}

public void start(){
    //创建服务器并启动
    try {
        ser=new ServerSocket(8888);
        Socket sk=ser.accept();//监听客户端
        this.recieve(sk);
    } catch (IOException e) {
        e.printStackTrace();
    }
}
private void recieve(Socket sk){
    try {
        BufferedReader bis=new BufferedReader(new InputStreamReader(sk.getInputStream()));
        StringBuilder sb=new StringBuilder();
        System.out.println("=======================");
        String msg=null;
        while((msg=bis.readLine()).length()>0){
            sb.append(msg);
            sb.append("\r\n");
        }
        //接收客户端(浏览器)请求信息
        String requestInfo=sb.toString().trim();//去除空格,处理数据方便
        System.out.println(requestInfo);
    } catch (IOException e) {
        //e.printStackTrace();
    }

}
public void  stop(){

}

}