Como consumir um webservice php

Olá gostaria de algumas dicas de como consumir um webservice com minha aplicação java ainda não achei um método para se fazer isto eu só gostaria de saber como enviar e receber dados de um webservice php alguma api especifica ou algo do tipo.

O fato do web service ser PHP não faz a mínima diferença, poderia ser qualquer outra tecnologia. Você precisa saber qual é o protocolo de comunicação utilizado pelo web service.

Por se tratar de um web service, acredito que seja HTTP. Portanto, você precisa fazer requisições HTTP, no formato que o servidor espera (as URL, os headers e o corpo da requisição, quando necessário).

Existem literalmente centenas de bibliotecas que lidam com HTTP. A mais simples de todas (e simples não significa fácil, mas apenas simples de lidar, 1 ou 2 métodos) é a própria classe URL do Java. Você pode fazer um url.openConnection() e obter duas streams (input e output) para se comunicar com aquele servidor naquela URL. Porém, dessa forma, você vai precisar interpretar o HTTP.

Outra biblioteca um pouco mais complexa (mas ainda razoavelmente simples) é a Apache HTTP Components. Com ela, você consegue uma abstração bem melhor sobre o HTTP, tendo objetos representando requisições e respostas (e todos os seus componentes, como headers e body). Porém, você ainda vai ter que pegar a input stream que aponta para o body que o servidor respondeu e parsea-la. Para isso, você pode utilizar alguma biblioteca mais específica para lidar com JSON ou XML (que provavelmente são os formatos utilizados no web service).

Pesquisa “Java HTTP client library” no Google e veja o tanto de coisa que aparece.

Se for JAX-WS, você pode usar o wsimport para criar o cliente do WS informado (URL do WSDL).

Veja: JAX-WS : wsimport tool example

Sim o protocolo e http O Apache http não estava funcionando acho que meu netbeans estava bugado mais agora estou conseguindo se comunicar normalmente só que encontrei outro probleminha vou descreve-lo melhor agora eu tenho o webserv lá ele recebe uma consulta via post ai retorna com array no caso

echo $sql['usuaio'];
echo $sql['senha'];

até ai tudo bem mais quando vou imprimir no java ele aparece tudo junto tipo usuariosenha estou tentando resolver isso agora

deixarei o código aqui caso alguém esteja com mesmo problema


package projeto;

import static com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type.String;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

/**
 *
 * @author enrique
 */
public class Projeto {

    
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        
        new requisicao().start();
        
    }
    
    public static class requisicao extends Thread{
        String usuario = "usuario";
        String senha = "senha";
        @Override
        public void run() {
            
        
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost("http://localhost/WebService/login.php");
        
        try {
            
            ArrayList<NameValuePair> valores = new ArrayList<>();
            valores.add(new BasicNameValuePair("usuario", usuario));
            valores.add(new BasicNameValuePair("senha", senha));
            
            httpPost.setEntity(new UrlEncodedFormEntity(valores));
            final HttpResponse resposta = httpClient.execute(httpPost);
            
            
            String dados = EntityUtils.toString(resposta.getEntity());
            
            
        } catch (ClientProtocolException e) {}
          catch (IOException e) {}
        
        }
        
        }
    }

Não é java web a aplicação é em java SE
:relaxed: