[英]Split string based on new line android
我有包含网络流量的文件,我想将POST请求拆分为两个字符串标题和正文。 我有这个问题。
sc.useDelimiter(" =========================");
String cellsbody=null;
String cellsheader= null;
String[] line1 = new String[2];
Map<String, String> finalParseHeader = new HashMap<String, String>();;
while (sc.hasNext()) {
line1 = sc.next().split("\r\n\r\n");
if(line1.length >= 2) {
cellsheader = line1[0];
cellsbody = line1[1];
Log.d("Post_Header", cellsheader); // Header Part
Log.d("Post_Body", cellsbody); // Body Part
}else{
cellsheader = line1[0]; // Handle GET when there is no body
Log.d("GET_header", cellsheader);
}
}
我可以知道我的代码有什么问题吗? 我不会根据“ \\ r \\ n \\ r \\ n”对它们进行拆分。 我尝试了很多组合,但我不明白。 这是我的文本文件包含:
POST /location/update?ts=1504152243110 HTTP/1.1
X-Cc-Device:
imei=37abc5afce16b603&model=Huawei&language=en&version=325&os=Android
23&service=1&api=1.0.0&wifi=1
Cookie: u=; s=
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Host: hk.meecha.net
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/3.5.0
isactived=1&lat=0.0&lng=0.0&haveredbag=1 <= Here the body for Post request
=========================
GET /easemob/server.json?
sdk_version=3.3.2&app_key=chatcat%23chatcat&file_version=1 HTTP/1.1
Host: rs.easemob.com
Connection: Keep-Alive
User-Agent: Easemob-SDK(Android) 3.3.2
您可以使用insertted的bufferReader,因为默认情况下它逐行读取文件。 您只需要声明列表并向其中添加行即可。 试试下面的代码
ArrayList<String> itemList = new ArrayList<String>();
BufferedReader sc = new BufferedReader(new
InputStreamReader(yourfilepath));
String str;
while ((str = sc.readLine()) != null) {
itemList.add(str);
}
in.close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.