이클립스를 사용하여 안드로이드에서 응용 프로그램을 설정하는 데 도움이 필요합니다.안드로이드 이클립스 설정 http 웹 서버에 대한 POST 및 GET GET.
저는 이클립스를 자바 개발에 사용하지 않았기 때문에이 모든 것이 안드로이드와 어떻게 조화를 이루는 지에 관해서는 약간 초록색입니다.
액세스 할 때 출력을 생성하도록 설정된 웹 서버로 테스트하기 위해 다운로드 한 스크립트가 있습니다 (JSON은이 시점에서 값 쌍으로 명명 됨).
내가 사용하고 -
이클립스 IDE 자바 개발자
버전을 위해 : 헬리오스 서비스 릴리스 2
빌드 ID : 20110218-0911
안드로이드 개발 툴킷
버전 : 10.0.1.v201103111512-110841
자바 코드 -
package new.android.test;
import android.app.Activity;
import android.os.Bundle;
import java.io.ByteArrayInputStream;
import java.net.Socket;
import org.apache.http.ConnectionReuseStrategy;
import org.apache.http.HttpEntity;
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.ByteArrayEntity;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
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;
/**
* Elemental example for executing a POST request.
* <p>
* Please note the purpose of this application is demonstrate the usage of HttpCore APIs.
* It is NOT intended to demonstrate the most efficient way of building an HTTP client.
*
*
*
*/
public class search extends Activity {
public static void main(String[] args) throws Exception {
HttpParams params = new SyncBasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");
HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
HttpProtocolParams.setUseExpectContinue(params, true);
HttpProcessor httpproc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
// Required protocol interceptors
new RequestContent(),
new RequestTargetHost(),
// Recommended protocol interceptors
new RequestConnControl(),
new RequestUserAgent(),
new RequestExpectContinue()});
HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
HttpContext context = new BasicHttpContext(null);
HttpHost host = new HttpHost("localhost", 80);
DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
ConnectionReuseStrategy connStrategy = new DefaultConnectionReuseStrategy();
context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
try {
HttpEntity[] requestBodies = {
new StringEntity(
"This is the first test request", "UTF-8"),
new ByteArrayEntity(
"This is the second test request".getBytes("UTF-8")),
new InputStreamEntity(
new ByteArrayInputStream(
"This is the third test request (will be chunked)"
.getBytes("UTF-8")), -1)
};
for (int i = 0; i < requestBodies.length; i++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
conn.bind(socket, params);
}
BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("POST",
"/android.php");
request.setEntity(requestBodies[i]);
System.out.println(">> Request URI: " + request.getRequestLine().getUri());
request.setParams(params);
httpexecutor.preProcess(request, httpproc, context);
HttpResponse response = httpexecutor.execute(request, conn, context);
response.setParams(params);
httpexecutor.postProcess(response, httpproc, context);
System.out.println("<< Response: " + response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
System.out.println("==============");
if (!connStrategy.keepAlive(response, context)) {
conn.close();
} else {
System.out.println("Connection kept alive...");
}
}
} finally {
conn.close();
}
}
}
기본 질문은 왜 그렇게 많은 수입입니까?
또한 나는이 수입에 대한 오류를 얻고있다 :
The import org.apache.http.params.SyncBasicHttpParams cannot be resolved
The import org.apache.http.protocol.ImmutableHttpProcessor cannot be resolved
내가 android.jar에서 이러한 클래스를 볼 수 없습니다.
웹 서버에 대한 트랜잭션을 구현하여 안드로이드 자바 애플리케이션에서 사용하기위한 JSON (namevaluepair)을 얻는 간단한 예제가 있습니까?
어떻게 그 항아리를 포함합니까? 비표준 안드로이드 병을 포함하면 안드로이드 장치에서 실행하는 데 문제가 있습니까? – Heals1ic
글쎄, 어떤 아파치 jar를 포함시켜야할지 모르겠다. 이전에 가지고 있던 코드를 사용하고 있다고 가정하기 때문에, 그 코드가 어디에 있든간에 올바른 jar 파일을 가리켜 야한다. 이클립스 프로젝트에 추가하기 만하면됩니다. 기기에 문제가 있어서는 안됩니다. – Femi
알았어요. 지금 분류했습니다. 추가 패키지를 빌드 경로의 일부로 포함 시켰으며 그 이상의 오류는 없었습니다. – Heals1ic