테스트 페이지에 데이터를 보내고 서버에서 실행 한 페이지를 받고 싶습니다. 내 현재 결과 = 서버가 아무것도 반환하지 않습니다. 사용 된 HTML 양식 :
<form action = "s.php" method = "post">
<input type = "text" name = "test" />
<input type = "submit" />
</form>
S.php-이전에 언급 한 형식의 데이터를 처리해야하는 스크립트 :
<? echo $_POST["test"] ?>
그래서 "test"텍스트 필드의 값을 가진 소스 코드를 받고 싶습니다. 이를위한 Java 코드 :
package nettests;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
class NetTests
{
public static void main(String args[]) throws IOException {
URL targetURL = new URL("http://lerain.tode.cz/s.php");
HttpURLConnection conn = (HttpURLConnection)targetURL.openConnection();
//data send via POST request
String data = "test=someData";
conn.setDoOutput(true);
conn.setInstanceFollowRedirects(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("charset", "UTF-8");
conn.setRequestProperty("Content-Length", Integer.toString(
data.length()));
conn.setUseCaches(false);
try(OutputStreamWriter out = new OutputStreamWriter(
conn.getOutputStream()))
{
out.write(data);
}
//reading code after POST request (here I want to have value from "test" field
try(BufferedReader in = new BufferedReader(new InputStreamReader(
conn.getInputStream())))
{
String currentLine;
while((currentLine = in.readLine()) != null)
{
System.out.println(currentLine);
}
}
}
}
아무도 도울 수 있습니까? 감사합니다 (내 모국어가 아닌 나쁜 영어에 대해 죄송합니다 :))
편집 : 해결
감사합니다 윌리엄,
모든 사람이 참조 할 수 있도록 답변 업데이트 :
William의 답변에 따르면 :
스위치
urlConnection.setRequestProperty ( "Content-Length", ""+ queryString.length ());
...에
((HttpURLConnection) urlConnection) .setFixedLengthStreamingMode (queryString.length ());
문제가 해결되었습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다