如何验证Processing的HTTP Request类的证书

时间:2017-08-03 23:01:11

标签: processing

我正在使用Rune Madson和Daniel Shiffman的HTTP-Request-for-Processing课来处理GetRequest和PostRequest,以便与网站OAuth一起使用。

我输入正确的URL和要处理的参数:

spark-shell --packages com.databricks:spark-csv_2.11:1.4.0 --driver-class-path /path/to/csvfilejar.jar

但是我受到了这些错误的欢迎:

GetRequest req = new GetRequest("https://www.afakesite.com/oauth2/token");
req.addHeader("grant_type","authorization_code");
req.addHeader("client_id",ID);
req.addHeader("client_secret",fancyClientSecret);
req.addHeader("code",authorizationCode);
req.send();

我也尝试使用Processing方法:

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

哪个成功没有上述错误,所以我知道网站正在返回数据,但我也想使用PostRequest类将文件提交到网站。此命令也不报告网站提供的附加JSON文件的400错误,而是丢弃它并给我一个例外。

那么我应该如何在Processing中验证此请求,如果不可能或太复杂,我应该如何将文件发送到此站点。

我正在尝试验证的网站是DeviantArt,如果该信息在任何方面都有用。

1 个答案:

答案 0 :(得分:2)

我建议尝试在没有库的情况下工作。您只需使用标准Java API中的HttpsUrlConnection

这是一个将一些数据发布到URL的小例子:

import javax.net.ssl.HttpsURLConnection;
import java.io.OutputStreamWriter;
import java.net.URL;

HttpsURLConnection connection = (HttpsURLConnection) new URL("https://example.com").openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);

OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.write("param1=Data for param1");
writer.write("&param2=Data for param2"); //Ampersand is necessary for more than one parameter
writer.write("&param3=Data for param3");
writer.flush();

int responseCode = connection.getResponseCode();
if(responseCode == 200){
   System.out.println("POST was successful!");
}
else{
   System.out.println("Error: " + responseCode);
}

无耻的自我推销:还有一些例子(包括指定身份验证)可用here

如果你可以使这个工作,那么你知道这对图书馆本身来说是不可思议的。老实说,自己做这个帖子并不需要很多代码,所以你可以完全摆脱这个库。

编辑处理不会编译代码,因为MalformedURLException可以通过包含在“try”块中来避免 即

try {
   HttpsURLConnection connection = (HttpsURLConnection) new URL("https://example.com").openConnection();
   //so on and so forth...
} catch(Exception e) {}