Как передать некоторые данные в качестве параметра, как параметр http в сокете?
Я использую Android 1.6. В моем офисе есть приложение, которое отправляет данные через HTTP-метод post.
Я хочу добавить модуль отправки данных через сокет. Я отправляю данные через сокет (выходной поток) правильно. Он правильно получает в приложении на стороне сервера (приложение C# socket).
Но в методе HTTP post некоторые данные передаются в качестве параметра. Я не могу найти какие-либо методы в сокете для отправки некоторых данных в качестве параметра и некоторых данных в потоках.
Ниже приведен код, который я сделал для отправки данных через сокет через outpustream.
socket=new Socket(this.ipAddress,this.port_number);
//socket.setSocketImplFactory(fac)
Log.i(tagName, "after creating sokcet");
os=socket.getOutputStream();
is=socket.getInputStream();
dos=new DataOutputStream(os);
Log.i(tagName, "after creating ouput streams");
dis=new DataInputStream(is);
Log.i(tagName, "after creating input streams");
//dos.writeUTF(msg[i].trim());
//dos.write(msg[i].trim().getBytes());
//dos.writeUTF(msg[i].trim());
dos.write(msg[i].trim().getBytes()); //data written as bytes
//dos.writeUTF(str)
dos.flush();
Log.i(tagName, "after writing data to os");
StringBuilder sbuilder=new StringBuilder();
///*
int ch;
byte bt=1;
while((bt=(byte) dis.read())!=-1)
{
Log.i(tagName, "ch="+bt);
byte temp[]=new byte[1];
//temp[0]=(byte)ch;
temp[0]=(byte)bt;
String tempStr1=new String(temp);
Log.i(tagName, "tempstr:"+tempStr1);
sbuilder.append(tempStr1);
Log.i(tagName, "Data fro server : "+sbuilder.toString());
tempStr1=null;
}
//*/
//byte tt[]=new byte[dis.readLine()]
//resultStr=dis.readLine();resultStr=resultStr.trim();
resultStr=sbuilder.toString();
Log.i(tagName, "server res :"+resultStr);
if(dos!=null)
{
try
{
dos.close();
}
catch(Exception ex)
{
}
}
if(dis!=null)
{
try
{
dis.close();
}
catch(Exception ex){}
}
if(socket!=null)
{
try
{
socket.close();
}
catch(Exception ex)
{
}
}
Вышеуказанный фрагмент кода работает правильно.
Но в методе HTTP post имя пользователя и пароль в качестве параметра и фактические данные в потоках. Таким образом, я хочу отправить имя пользователя и пароль в параметре и фактические в потоках.
1 ответ
Я нахожу решение.
Мы не можем отправить данные в качестве параметра, такого как параметр http в сокетном соединении.
Мы можем отправлять данные только в потоках.
На стороне сервера мы можем написать, чтобы проанализировать данные из потоков.
Спасибо