【发布时间】:2020-01-15 14:56:50
【问题描述】:
我需要从我的 Java 代码中填写基本的 Google 表单,但它会抛出 org.apache.http.client.ClientProtocolException: Unexpected response status: 405
这是我的代码:
private boolean sendMessage(UserInfo userInfo) {
final HttpPost req = new HttpPost("my-form-url");
try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
List<NameValuePair> form = new ArrayList<>();
form.add(new BasicNameValuePair("entry.1301726507", userInfo.getName()));
form.add(new BasicNameValuePair("entry.1466759457", "hello"));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(form, Consts.UTF_8);
req.setEntity(entity);
System.out.println("Executing request " + req.getRequestLine());
ResponseHandler<String> responseHandler = response -> {
int status = response.getStatusLine().getStatusCode();
if (status >= 200 && status < 300) {
HttpEntity responseEntity = response.getEntity();
return responseEntity != null ? EntityUtils.toString(responseEntity) : null;
} else {
throw new ClientProtocolException("Unexpected response status: " + status);
}
};
String responseBody = httpclient.execute(req, responseHandler);
System.out.println("----------------------------------------");
System.out.println(responseBody);
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
这是表格:
我做错了什么?
【问题讨论】:
-
也许没有为此表单定义 Post?这就是错误代码的说明。
标签: java google-forms autofill