Como enviar um request HTTP POST?

Oi pessoal,
galera, estou desenvolvendo um serviço de upload de imagem no photobucket, estou estudando a API deles.
Eu preciso enviar um request HTTP POST para receber uma string (a grosso modo,rs).

Aqui fala mais como autenticar na API para projetos WEB: http://pic.pbsrc.com/dev_help/WebHelpPublic/Content/Getting%20Started/Web%20Authentication.htm

Só que se mando por este método, ele lança uma exceção sempre, esta certo este método ?

   private void upload(HttpServletRequest request, HttpServletResponse response) {
        try {
            String url = "http://api.photobucket.com/login/request";
            URL endereco = new URL(url);
            HttpURLConnection connection = (HttpURLConnection) endereco.openConnection();
            connection.setRequestMethod("POST");
            connection.setDoInput(true);
            connection.setDoOutput(false);
            connection.connect();

            // abre a conexão pra input
            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            // le ate o final
            StringBuffer newData = new StringBuffer(10000);
            String s = "";
            while (null != ((s = br.readLine()))) {
                newData.append(s);
            }
            br.close();

            System.out.println(new String(newData));
            System.out.println(connection.getResponseCode() + " " + connection.getResponseMessage());


        } catch (Exception e) {
            System.out.println("PHOTOBUCKET - UPLOAD");
            System.out.println(e.getMessage());
        }

    }

Obrigado GUJ.

qual o erro que da? printe o stack trace no catch e cole aqui que fica mais facil

qual a linha que da o erro?

eu não manjo muito dessa API, mas não achei nada de errado, ja a usei e tem algumas diferenças do meu código com o seu mas nada que faça diferença, a exemplo eu deixei o doOutput como true e vc não, mas vc não escreve nada…

outra coisa que eu posso te sugerir é você criar uma servlet retornar qualquer coisa nessa servlet… ai testar acessando ela ao invés da photobucket…

[quote=maior_abandonado]qual o erro que da? printe o stack trace no catch e cole aqui que fica mais facil

qual a linha que da o erro?

eu não manjo muito dessa API, mas não achei nada de errado, ja a usei e tem algumas diferenças do meu código com o seu mas nada que faça diferença, a exemplo eu deixei o doOutput como true e vc não, mas vc não escreve nada…

outra coisa que eu posso te sugerir é você criar uma servlet retornar qualquer coisa nessa servlet… ai testar acessando ela ao invés da photobucket…[/quote]

Então cara é o seguinte, fiz algo bem simples mesmo:

1- Criei um index.jsp com um link ‘Upload’, que chama um servlet ‘PhotoBucket’ lah tem o método :

    private void upload(HttpServletRequest request, HttpServletResponse response) {
        try {
            String url = "http://api.photobucket.com/login/request";
            URL endereco = new URL(url);
            HttpURLConnection connection = (HttpURLConnection) endereco.openConnection();
            connection.setRequestMethod("POST");
            connection.setDoInput(true);
            connection.setDoOutput(false);
            connection.connect();

            // abre a conexão pra input
            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            // le ate o final
            StringBuffer newData = new StringBuffer(10000);
            String s = "";
            while (null != ((s = br.readLine()))) {
                newData.append(s);
            }
            br.close();

            System.out.println(new String(newData));
            System.out.println(connection.getResponseCode() + " " + connection.getResponseMessage());


        } catch (Exception e) {
            System.out.println("PHOTOBUCKET - UPLOAD");
            System.out.println(e.getMessage());
        }

    }

Que quando executo ele lança a seguinte exceção:

PHOTOBUCKET - UPLOAD
Server returned HTTP response code: 401 for URL: http://api.photobucket.com/login/request

Eu tenho um API KEY e defini um CallBack URL , que seria aonde ele irá retornar o OAuth e etc.
Porém ai eu não passo nem a minha chave de desenvolvedor ou outra coisa qualquer… isso esta muito estranho, mas pelo que li na documentação é assim (até onde entendi…).

então cara… erro 401 acredito que seja algo do tipo “não autorizado”, ou seja, sua solicitação ocorreu com sucesso, o servidor que retornou isso para você… provavelmente você precisa mandar alguma coisa para eles, algo do tipo usuário e senha, sei la

se vc fizer aquilo que eu falei, de criar uma servlet e testar com essa servlet acredito que vai ver funcionar normalmente…

ah, pra printar o stack trace, chame o método printStackTrace do seu objeto da exceção…

[quote=maior_abandonado]então cara… erro 401 acredito que seja algo do tipo “não autorizado”, ou seja, sua solicitação ocorreu com sucesso, o servidor que retornou isso para você… provavelmente você precisa mandar alguma coisa para eles, algo do tipo usuário e senha, sei la

se vc fizer aquilo que eu falei, de criar uma servlet e testar com essa servlet acredito que vai ver funcionar normalmente…

ah, pra printar o stack trace, chame o método printStackTrace do seu objeto da exceção…[/quote]
Então cara, voltou 200 OK, então tah certo.
Agora vou ler de novo a documentação lah,rs.

Valeu brother.