Java 如何正确导入类:来自ApacheCommons的Http客户端
我开始学习java,并且在使用Http方法时遇到了难以置信的困难,我认为这些方法是从ApacheCommons获得的。我正在尝试制作一个可以在btc-e.com上进行比特币交易的类 我下载了HTTPComponents客户端,然后在我的项目的构建路径中包含了所有的.jar文件。但出于某种原因,eclipse仍然无法识别其中的一些方法。具体来说,HttpUtils是不可识别的 有人能告诉我如何在代码中正确地包含这些类的一步一步的过程吗?我真的是个新手,花了6个多小时试图弄明白这一点 这是我的要点:Java 如何正确导入类:来自ApacheCommons的Http客户端,java,eclipse,http,apache-httpcomponents,Java,Eclipse,Http,Apache Httpcomponents,我开始学习java,并且在使用Http方法时遇到了难以置信的困难,我认为这些方法是从ApacheCommons获得的。我正在尝试制作一个可以在btc-e.com上进行比特币交易的类 我下载了HTTPComponents客户端,然后在我的项目的构建路径中包含了所有的.jar文件。但出于某种原因,eclipse仍然无法识别其中的一些方法。具体来说,HttpUtils是不可识别的 有人能告诉我如何在代码中正确地包含这些类的一步一步的过程吗?我真的是个新手,花了6个多小时试图弄明白这一点 这是我的要点:
public static int Buyy(double rate, double amount){
Calendar now = Calendar.getInstance();
long nonce = ( now.getTimeInMillis()/1000);
String api_key= " ";
String api_secret = " ";
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.btc-e.com/tapi");
try {
// Add data
HashMap params = new HashMap();
params.put("method", "Trade");
params.put("pair", "btc_usd");
params.put("type", "buy");
params.put("rate", rate);
params.put("amount", amount);
params.put("nonce", nonce);
HashMap headers = new HashMap();
headers.put("Contnent-type", "x-www-form-urlencoded");
headers.put("key", api_key);
headers.put("sign", api_secret);
httppost.setEntity(new UrlEncodedFormEntity(params));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
具体来说,我得到的错误是:
-无法解析导入org.apache.http.client.methods.HttpResponse
-无法将HttpResponse解析为类型
-无法解析类型org.apache.http.HttpResponse。它是从必需的.class文件间接引用的
-无法解析类型org.apache.http.entity.StringEntity。它是从必需的.class文件间接引用的
我认为这意味着我没有导入所有需要导入的文件?我不知道该怎么做,也不知道我需要哪一个。我真的迷路了
谢谢!我真的很感谢你的帮助。我正在使用Eclipse
这是我已经导入的内容:
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Hex;
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.client.methods.HttpResponse;
import org.apache.http.impl.client.DefaultHttpClient;
对于
HttpResponse
我认为导入应该是
import org.apache.http.HttpResponse;
而不是
import org.apache.http.client.methods.HttpResponse;
第二个API中似乎不存在
还要检查您是否在构建路径中包含了HttpCore和HttpClient的JAR。您使用哪个IDE以及如何编译代码?我使用的是eclipse。正是在eclipse中,我将.jar文件添加到构建路径中。将ApacheJAR文件移动到Java构建路径的“Order and Export”选项卡的列表顶部。可能与构建路径中包含的JAR文件有冲突。您也可以在构建路径中列出JAR文件谢谢!我还没有从httpCore添加jar。这消除了大部分错误消息,但我仍然得到这行的erorr:HttpResponse response=httpclient.execute(httppost);错误显示:类型的方法execute(HttpPost)未定义HttpClient@adamjts你修复了HttpResponse的导入吗?是的,我将导入更改为你建议的导入。这些都是apache导入:import org.apache.commons.httpclient.httpclient;导入org.apache.http.HttpRequest;导入org.apache.http.HttpResponse;导入org.apache.http.NameValuePair;导入org.apache.http.client.ClientProtocolException;导入org.apache.http.client.entity.UrlEncodedFormEntity;导入org.apache.http.client.methods.HttpPost;您导入的
HttpClient
不正确:您有import org.apache.commons.HttpClient.HttpClient
并且应该是import org.apache.http.client.HttpClient代码>。您是否在项目中混合了来自ApacheCommons和ApacheHttpComponents的JAR文件?不要在构建路径中包含太多JAR文件,您只需要httpcore和httpclient。