Bereits versucht für die Anzahl der Stunden, um allgemeine POST-Nachricht an den Server zu senden. Ich verwende HTTP-Core-Bibliothek.HttpRequest Entity (Körper) ist leer, wenn Anfrage mit Java gesendet wird HttpCore
Alle Header scheint korrekt zusammengesetzt zu sein, aber irgendwie der Körper (Entity) der Nachricht wird gelöscht und nicht an den Server gesendet. Das Problem tritt auf, nachdem der Befehl "process" oder derselbe "preProcess" aufgerufen wurde. Hinweis: Dies ist praktisch identisch mit offiziellen Apache-Beispiel. Wäre für jeden Rat dankbar.
import java.net.*;
import org.apache.http.HttpHost;
import org.apache.http.HttpRequestInterceptor;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.DefaultHttpClientConnection;
import org.apache.http.message.BasicHttpEntityEnclosingRequest;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.params.SyncBasicHttpParams;
import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HttpProcessor;
import org.apache.http.protocol.HttpRequestExecutor;
import org.apache.http.protocol.ImmutableHttpProcessor;
import org.apache.http.protocol.RequestConnControl;
import org.apache.http.protocol.RequestContent;
import org.apache.http.protocol.RequestExpectContinue;
import org.apache.http.protocol.RequestTargetHost;
import org.apache.http.protocol.RequestUserAgent;
import org.apache.http.util.EntityUtils;
public class HTTPCommunicator
{
public static String TOKEN = null;
public static void main(String[] args) throws Exception
{
BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("POST", "/api");
HttpHost host = new HttpHost("localhost", 80);
HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
HttpContext context = new BasicHttpContext(null);
DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
request.addHeader("Host", "localhost");
request.addHeader("Accept", "application/json,application/xml");
request.addHeader("Accept-Encoding", "gzip, deflate");
HttpParams params = new SyncBasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");
HttpProtocolParams.setUserAgent(params, "MyClient");
HttpProtocolParams.setUseExpectContinue(params, true);
request.setParams(params);
String sRequest = "userName=yourusername&password=yourpassword";
request.setEntity(new StringEntity(sRequest));
HttpProcessor httpproc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
// Required protocol interceptors
new RequestContent(), new RequestTargetHost(),
// Recommended protocol interceptors
new RequestConnControl(), new RequestUserAgent(), new RequestExpectContinue() });
httpproc.process(request, context);
//httpexecutor.preProcess(request, httpproc, context);
//Sending request
Socket socket = new Socket(host.getHostName(), host.getPort());
conn.bind(socket, params);
HttpResponse response = httpexecutor.execute(request, conn, context);
System.out.println(EntityUtils.toString(response.getEntity()));
}