Java 为什么我的HTTP POST请求不发送到我的网页?
我在这里和整个互联网上看了很多其他的帖子,我似乎无法解决这个问题 因此,我基本上编写了以下Java代码:Java 为什么我的HTTP POST请求不发送到我的网页?,java,php,Java,Php,我在这里和整个互联网上看了很多其他的帖子,我似乎无法解决这个问题 因此,我基本上编写了以下Java代码: public void sendReport(CommandSender sender, Player target, String reason) { HttpURLConnection connectionStandard = null; String email = config.getString("rp.site.email"); String passwo
public void sendReport(CommandSender sender, Player target, String reason)
{
HttpURLConnection connectionStandard = null;
String email = config.getString("rp.site.email");
String password = config.getString("rp.site.password");
String senderName = sender.getName();
String targetName = target.getDisplayName();
String reasonString = reason;
try
{
URL url = new URL("http://www.website.net/folder/connect.php");
HttpURLConnection request = (HttpURLConnection)url.openConnection();
request.setRequestProperty("Content-type","application/x-www-form-urlencoded");
request.setRequestMethod("POST");
request.setDoOutput(true);
OutputStreamWriter post = new OutputStreamWriter(request.getOutputStream());
String data = URLEncoder.encode("email", "UTF-8") + "=" + URLEncoder.encode(email.toString(), "UTF-8");
data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password.toString(), "UTF-8");
data += "&" + URLEncoder.encode("reporter", "UTF-8") + "=" + URLEncoder.encode(senderName, "UTF-8");
data += "&" + URLEncoder.encode("reported", "UTF-8") + "=" + URLEncoder.encode(targetName, "UTF-8");
data += "&" + URLEncoder.encode("reason", "UTF-8") + "=" + URLEncoder.encode(reasonString, "UTF-8");
post.write(data);
post.flush();
} catch (MalformedURLException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
} finally
{
if(null != connectionStandard)
{
connectionStandard.disconnect();
}
}
}
基本上,我的php代码如下所示:
<?php
require_once "db.php";
$reporter->startSecureSession();
foreach ($_POST as $post => $value) {
$post = strip_tags($post);
$value = strip_tags($value);
}
if(!(isset($_POST['email'])) or (!isset($_POST['password'])) or (!isset($_POST['reporter'])) or (!isset($_POST['reported'])) or (!isset($_POST['reason']))) {
exit("Invalid Request");
}
$password = hash("sha512", $_POST['password']);
$reporter->login(array("email" => $_POST['email'], "password" => $password), "plugin");
if($reporter->validateClient()) {
$reporter->sendReport($_POST);
header("Location: logout.php");
exit();
} else {
exit();
}
?>
当我通过chrome将我的详细信息发送到网页时,它会工作并将内容发送到我的数据库,但当我通过发送请求的命令在bukkit服务器上执行此操作时,它不会:/
感谢您的帮助:)好的,从URLConnection的javadoc: 1) 连接对象是通过调用openConnection方法创建的 在URL上 2) 设置参数和常规请求属性如下所示 操纵 3) 与远程对象的实际连接是使用 连接方法 4) 远程对象变为可用。标题 可以访问远程对象的字段和内容
您似乎没有调用
URLConnection#connect
那么,从URLConnection的javadoc:
1) 连接对象是通过调用openConnection方法创建的
在URL上
2) 设置参数和常规请求属性如下所示
操纵
3) 与远程对象的实际连接是使用
连接方法
4) 远程对象变为可用。标题
可以访问远程对象的字段和内容
您似乎没有调用
URLConnection#connect
您可以使用ApacheHttpClient 4.x从Java发送GET/POST请求
String url = "http://www.website.net/folder/connect.php";
HttpPost method = new HttpPost(url);
HttpClient httpClient = new DefaultHttpClient();
List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
formparams.add(new BasicNameValuePair("email", email.toString()));
formparams.add(new BasicNameValuePair("password", password.toString()));
formparams.add(new BasicNameValuePair("reporter", senderName));
formparams.add(new BasicNameValuePair("reported", targetName));
formparams.add(new BasicNameValuePair("reason", reasonString));
UrlEncodedFormEntity entity = null;
try {
entity = new UrlEncodedFormEntity(formparams, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
method.setEntity(entity);
HttpResponse httpResponse = httpClient.execute(method);
stringurl=”http://www.website.net/folder/connect.php";
HttpPost方法=新的HttpPost(url);
HttpClient HttpClient=新的DefaultHttpClient();
List formparams=new ArrayList();
添加(新的BasicNameValuePair(“email”,email.toString());
添加(新的BasicNameValuePair(“password”,password.toString());
formparams.add(新的BasicNameValuePair(“报告者”,senderName));
formparams.add(新的BasicNameValuePair(“报告”,targetName));
添加(新的BasicNameValuePair(“原因”,reasonString));
UrlEncodedFormEntity实体=null;
试一试{
实体=新的UrlEncodedFormEntity(formparams,“UTF-8”);
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
方法:设置实体(实体);
HttpResponse HttpResponse=httpClient.execute(方法);
您可以使用ApacheHttpClient 4.x从Java发送GET/POST请求
String url = "http://www.website.net/folder/connect.php";
HttpPost method = new HttpPost(url);
HttpClient httpClient = new DefaultHttpClient();
List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();
formparams.add(new BasicNameValuePair("email", email.toString()));
formparams.add(new BasicNameValuePair("password", password.toString()));
formparams.add(new BasicNameValuePair("reporter", senderName));
formparams.add(new BasicNameValuePair("reported", targetName));
formparams.add(new BasicNameValuePair("reason", reasonString));
UrlEncodedFormEntity entity = null;
try {
entity = new UrlEncodedFormEntity(formparams, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
method.setEntity(entity);
HttpResponse httpResponse = httpClient.execute(method);
stringurl=”http://www.website.net/folder/connect.php";
HttpPost方法=新的HttpPost(url);
HttpClient HttpClient=新的DefaultHttpClient();
List formparams=new ArrayList();
添加(新的BasicNameValuePair(“email”,email.toString());
添加(新的BasicNameValuePair(“password”,password.toString());
formparams.add(新的BasicNameValuePair(“报告者”,senderName));
formparams.add(新的BasicNameValuePair(“报告”,targetName));
添加(新的BasicNameValuePair(“原因”,reasonString));
UrlEncodedFormEntity实体=null;
试一试{
实体=新的UrlEncodedFormEntity(formparams,“UTF-8”);
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
方法:设置实体(实体);
HttpResponse HttpResponse=httpClient.execute(方法);
request.connect();我该去哪里做这件事?我应该把断开的开关放在哪里;request.connect();我该去哪里做这件事?我应该把断开的开关放在哪里;