Как передать некоторые данные в качестве параметра, как параметр 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 в сокетном соединении.
Мы можем отправлять данные только в потоках.
На стороне сервера мы можем написать, чтобы проанализировать данные из потоков.

Спасибо

Другие вопросы по тегам