Java Intellij Idea中使用HashMap设置的密钥错误
以下是我的功能:Java Intellij Idea中使用HashMap设置的密钥错误,java,debugging,intellij-idea,hashmap,Java,Debugging,Intellij Idea,Hashmap,以下是我的功能: public static String uploadImageViaHttpPost(HashMap<String,String> keyParams){ String in="Image Uploaded Successfully!!"; try { HttpClient client = new HttpClient(); PostMethod method = new PostMethod(keyParams
public static String uploadImageViaHttpPost(HashMap<String,String> keyParams){
String in="Image Uploaded Successfully!!";
try {
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(keyParams.get("fbImgPostURL"));
//Add any parameter if u want to send it with Post req.
method.addParameter("accessToken", keyParams.get("accessToken"));
method.addParameter("url",keyParams.get("imageURL"));
method.addParameter("message",keyParams.get("message"));
int statusCode = client.executeMethod(method);
if (statusCode != -1) {
in = method.getResponseBodyAsString();
}
System.out.println(in);
} catch (Exception e) {
e.printStackTrace();
}
return in;
}
publicstringuploadimage(URL图像、字符串消息)引发异常{
HashMap paramArgs=新HashMap();
paramArgs.put(“fbImgPostURL”https://graph.facebook.com/me/photos");
put(“accessToken”,accessGrant.getKey());
paramArgs.put(“imageURL”,image.toString());
paramArgs.put(“消息”,消息);
返回HttpPictureUploadImageViaHttpPost(参数参数);
}
当我从intelliJ调试器调试它时,奇怪的是
paramArgs.put("accessToken",accessGrant.getKey());
显然,密钥是accessToken
。但调试器显示如下:
access_token
=caackan8sud0bakuzayxlinmxw2pzakmkhihvzcojg1se2qsw60cfqjzajwymbqc1xy1jvmsmyau4ehogskhhhqjsqe6coruxakyfbok7wgyysgjyzc6qf6kzbprwwbpc6jujgkixzzcfgzvzhuzbltxxgzd
很明显,问题是我设置了一个不同的密钥名,但在哈希映射中,设置了一个不同的密钥名,它实际上被传递给
HttpPictureUpload.uploadImageViaHttpPost(paramArgs);
这里的任何人都能猜到发生了什么
编辑:
下面是我的uploadImageViaHttpPost()
函数:
public static String uploadImageViaHttpPost(HashMap<String,String> keyParams){
String in="Image Uploaded Successfully!!";
try {
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(keyParams.get("fbImgPostURL"));
//Add any parameter if u want to send it with Post req.
method.addParameter("accessToken", keyParams.get("accessToken"));
method.addParameter("url",keyParams.get("imageURL"));
method.addParameter("message",keyParams.get("message"));
int statusCode = client.executeMethod(method);
if (statusCode != -1) {
in = method.getResponseBodyAsString();
}
System.out.println(in);
} catch (Exception e) {
e.printStackTrace();
}
return in;
}
publicstaticstringuploadImageViahttpPost(hashMapKeyParams){
String in=“图像上传成功!!”;
试一试{
HttpClient=新的HttpClient();
PostMethod方法=新的PostMethod(keyParams.get(“fbImgPostURL”);
//如果你想用Post req发送任何参数。
addParameter(“accessToken”,keyParams.get(“accessToken”);
addParameter(“url”,keyParams.get(“imageURL”);
addParameter(“消息”,keyParams.get(“消息”);
int statusCode=client.executeMethod(方法);
如果(状态代码!=-1){
in=method.getResponseBodyAsString();
}
系统输出打印项次(输入);
}捕获(例外e){
e、 printStackTrace();
}
返回;
}
这看起来像Base64。你确定这不是该方法首先应该返回的,而不是密钥本身吗?@fge我不知道。但问题是我正在设置密钥“accessToken”,但正在设置的是“access\u token”。因此在HttpPictureUpload.uploadImageViaHttpPost中(paraargs);当我试图访问参数“accessToken”时,我得到一个空值。@fge这真的很奇怪。您是否尝试过将“accessToken”字符串更改为其他字符串,以查看它是否特定于该字符串?我还有一点,虽然可能不会影响这个问题,那就是将左侧的HashMap更改为接口映射。@rahulserver如果您更改了行(以及它的键和值),并且您的输出仍然相同,那么您的类似乎没有得到编译。也许您的项目中有一些编译错误,或者这些类由于其他原因没有被编译?不幸的是,我对intelliJ不熟悉。@Tom我已经很久没有接触这个项目了。所以我不记得我是怎么解决的。因此,请主持人对这个问题做任何必要的处理。可能关闭或删除它?