我一直在研究这个但是我似乎无法纠正错误。我只是在Android开发中的新手。我在product1 {
float: left;
width: 100%;
height: 100%;
margin-bottom: 8px;
border: 1px solid #EEE;
min-height: 300px;
background-color: #FFF;
box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05) inset;
position: relative;
}
.product1 .image a img {
max-width: 100%;
max-height: 178px;
}
和getStatusCode()
上都有“未定义类型对象的方法”错误。任何帮助将不胜感激。
getReasonPhrase()
然后告诉我,我不应该使用Apache HTTP客户端,而是使用HttpURLConnection,所以我改变了我的代码,我想知道这是否有效,结果是否相同
package com.javapapers.java.io;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class HttpUtil {
public String getHttpResponse(HttpRequestBase request) {
String result = null;
try {
DefaultHttpClient httpClient = new DefaultHttpClient(new BasicHttpParams());
HttpResponse httpResponse = httpClient.execute(request);
int statusCode = httpResponse.getStatusLine().getStatusCode();
String reason = httpResponse.getStatusLine().getReasonPhrase();
StringBuilder sb = new StringBuilder();
if (statusCode == 200) {
HttpEntity entity = httpResponse.getEntity();
InputStream inputStream = entity.getContent();
BufferedReader bReader = new BufferedReader(
new InputStreamReader(inputStream, "UTF-8"), 8);
String line = null;
while ((line = bReader.readLine()) != null) {
sb.append(line);
}
} else {
sb.append(reason);
}
result = sb.toString();
} catch (UnsupportedEncodingException ex) {
} catch (ClientProtocolException ex1) {
} catch (IOException ex2) {
}
return result;
}
}
甚至是这样的
public class HttpUtil {
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.err.println("Usage: java Reverse "
+ "https://twitter.com/aaroadwatch"
+ " string_to_reverse");
System.exit(1);
}
String stringToReverse = URLEncoder.encode(args[1], "UTF-8");
URL url = new URL(args[0]);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(
connection.getOutputStream());
out.write("string=" + stringToReverse);
out.close();
BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream()));
String decodedString;
while ((decodedString = in.readLine()) != null) {
System.out.println(decodedString);
}
in.close();
}
}
我的Twitter API类
我在 URL url = new URL("https://twitter.com/aaroadwatch");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
readStream(in);
finally {
urlConnection.disconnect();
}
}
和getHttpResponse
上出错
包com.javapapers.social.twitter;
getHttpResponse
答案 0 :(得分:2)
这是一种利用HttpUrlConnection
的可能实现:
private static final int CONNECTION_TIMEOUT = (int) TimeUnit.SECONDS.toMillis(15);
private static final int READ_TIMEOUT = (int) TimeUnit.SECONDS.toMillis(15);
public static void main(String[] args) {
String address = "https://twitter.com/aaroadwatch";
System.out.println(get(address));
}
public static String get(String address) {
String result = null;
HttpURLConnection conn = null;
InputStream in = null;
try {
// building api url
URL url = new URL(address);
System.out.println("GET URL " + url.toString());
// establishing connection with server
conn = (HttpURLConnection) url.openConnection();
// building headers
conn.setReadTimeout(READ_TIMEOUT);
conn.setConnectTimeout(CONNECTION_TIMEOUT);
conn.setRequestMethod("GET");
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
in = new BufferedInputStream(conn.getInputStream());
// building output string from stream
StringBuilder sb = new StringBuilder();
int b;
while ((b = in.read()) != -1) {
sb.append((char) b);
}
String output = sb.toString().replace("\n", "");
System.out.println("GET RES " + output);
result = output;
}
} catch (MalformedURLException ex) {
System.err.println("malformed url");
ex.printStackTrace();
} catch (IOException ex) {
System.err.println("I/O exception");
ex.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException ex) {
}
}
if (conn != null) {
conn.disconnect();
}
}
return result;
}
希望这可以提供帮助。