Http GET方法带参数到php函数

时间:2012-05-02 19:08:50

标签: java android http get

我是java / android的新手,因为我安排了IOS,我怀疑将参数发送到PHP中的函数

嗯,是一个表单,当用户点击发送时,我将表单的内容保存在字符串中。

最后有字符串4

名 电子邮件 nameUser EmailUser

我需要将它们发送到php中的功能,我遵循这个tutorial

但我的问题是将字符串的值作为函数的参数

在IOS中做了以下事情:

...

NSString *urlEnvio = [[NSString alloc] initWithFormat:@"http://www.xxxx.com.br/indicar.php?destinatario=%@&remetente=%@&nomedestinatario=%@&nome=%@&enviar=%@", destinatario, remetente, nome,nomeRemetente, check];

...

是我需要java的东西。

根据要求,我编辑了这篇文章 .....

@Override
            public void onClick(View v) {
                String nome = seuNome.getText().toString();
                String email = seuEmail.getText().toString();
                String strNomeAmigo = nomeAmigo.getText().toString();
                String strEmailAmigo = emailAmigo.getText().toString();

                //chama funcao que envia
                indicar();

            }
        });
    }

    public void indicar(){
          new Thread(new Runnable() {
                public void run() {
                    BufferedReader in = null;
                    try {
                        HttpClient client = new DefaultHttpClient();
                        HttpGet request = new HttpGet();
                        request.setURI(new URI("http://www.xxxx.com.br/indicar.php?"));
                        //send to this address with the parameters: name, email, strNomeAmigo, strEmailAmigo
                        //

                        HttpResponse response = client.execute(request);
                        in = new BufferedReader
                        (new InputStreamReader(response.getEntity().getContent()));
                        StringBuffer sb = new StringBuffer("");
                        String line = "";
                        String NL = System.getProperty("line.separator");
                        while ((line = in.readLine()) != null) {
                            sb.append(line + NL);
                        }
                        in.close();
                        String page = sb.toString();
                        System.out.println(page);
                        } finally {
                        if (in != null) {
                            try {
                                in.close();
                                } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }

                }
            }).start();


    }

...

使用以下参数发送到此地址:name,email,strNomeAmigo,strEmailAmigo

像这样:http://www.xxxxx.com.br/indicar.php?nome=name_example&email=example@example.com ......

2 个答案:

答案 0 :(得分:1)

您的问题是使用您的参数对网址进行编码,对吧?如果是这样,您可以使用String.format。这个How do I encode URI parameter values? SO问题也解决了同样的问题。

答案 1 :(得分:0)

有许多方法可以在Java中连接字符串。格式化字符串的一种方法是使用String.format

String urlEnvio = String.format("http://www.xxxx.com.br/indicar.php?destinatario=%s&remetente=%s&nomedestinatario=%s&nome=%s&enviar=%s", destinatario, remetente, nome, nomeRemetente, check);

我更喜欢使用验证并正确转义参数的东西,所以我更喜欢Uri.Builder