java中POST请求的问题

Yur*_*ury 1 java post

我尝试用Java以编程方式发送POST请求并获得以下异常:

"org.apache.http.client.HttpResponseException:Forbidden"

但是,如果我使用此表单在浏览器中发送请求:

<form method=post action="http://gametest.phpnet.us">
    <p>Type : <input type=text name=request_type>
    <p>Name : <input type=text name=user_name>
    <p>Password : <input type=text name=user_password>
    <p><input type=submit name=send value=Send>
</form>
Run Code Online (Sandbox Code Playgroud)

一切正常(尝试使用任何名称和密码,类型必须"注册",服务器必须返回xml" <code>0</code>").

这是java代码的示例:

HttpParams defHttpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(defHttpParams, 5000);   
HttpConnectionParams.setSoTimeout(defHttpParams, 5000); 
String mServerUrl = "http://gametest.phpnet.us/index.php";
DefaultHttpClient mClient = new DefaultHttpClient(defHttpParams);
HttpPost postMethod = new HttpPost(mServerUrl);

postMethod.setEntity(new UrlEncodedFormEntity( [...some nameValuePairs] ));

try {
    ResponseHandler<String> httpResponceHandler = new BasicResponseHandler();
    responce = mClient.execute(postMethod, httpResponceHandler);
}
catch (Throwable t) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

(如果我使用本地apache服务器,那么一切正常,但在phpnet.us上我得到例外.)

我该怎么做才能使Java代码工作?

tel*_*elm 6

尝试使用htmlunit

  // Create client with settings
  final WebClient webClient = new WebClient();
  webClient.setTimeout(5000);

  // Create web request
  WebRequest requestSettings = new WebRequest(new URL("http://www.amazon.com/s/ref=nb_sb_noss"), HttpMethod.POST);

  // Set the request parameters
  requestSettings.setRequestParameters(new ArrayList());
  requestSettings.getRequestParameters().add(new NameValuePair("field-keywords", "Doctor Who"));

  Page page = webClient.getPage(requestSettings);
  page.getWebResponse().getStatusCode();
Run Code Online (Sandbox Code Playgroud)