使用从URLConnection读取的值的Java If语句不起作用

使用从URLConnection读取的值的Java If语句不起作用,java,post,if-statement,urlconnection,Java,Post,If Statement,Urlconnection,我不知道为什么,但是当我使用URLConnection向url发送http post请求时,我可以得到很好的返回,但是当我在if语句中使用它时,它停止工作。 该程序可以编译所有这些,但是如果我使用它向包含yes的网页发送http请求,并且我使用代码if(answer.toString==“yes”)它将不会在if部分中执行代码。我知道这可能与分线器之类的东西有关,但有人能告诉我如何修复它吗 用于获取变量的代码答案: String data="param1=test1&param2=tes

我不知道为什么,但是当我使用URLConnection向url发送http post请求时,我可以得到很好的返回,但是当我在if语句中使用它时,它停止工作。 该程序可以编译所有这些,但是如果我使用它向包含
yes
的网页发送http请求,并且我使用代码
if(answer.toString==“yes”)
它将不会在if部分中执行代码。我知道这可能与分线器之类的东西有关,但有人能告诉我如何修复它吗

用于获取变量的代码答案

String data="param1=test1&param2=test2";
try{
  URL lUrl=new URL("http://localhost/test.php");
  URLConnection conn=lUrl.openConnection();
  conn.setDoOutput(true);
  OutputStreamWriter writer=new OutputStreamWriter(conn.getOutputStream());
  writer.write(data);
  writer.flush();
  StringBuffer answer=new StringBuffer();
  BufferedReader reader=new BufferedReader(new InputStreamReader(conn.getInputStream()));
  String line;
  while((line=reader.readLine())!=null){
    answer.append(line);
  }
  writer.close();
  reader.close();
  if(answer.toString()=="yes"){
    System.out.print("1");
  }else{
    System.out.print(answer.toString());
  }
}catch(MalformedURLException ex){
  ex.printStackTrace();
}catch(IOException ex){
  ex.printStackTrace();
}

要比较java字符串,请使用
equals
方法,而不是
=

因为==只能检测两个字符串是否为同一实例,而不能检测它们是否包含相同的值

所以你的测试应该是:

if ("yes".equals(answer)) {
请注意,我写“yes”作为equals方法的接收者,因为当answer为null时,写
answer.equals(“yes”)
将导致NullPointerException。 在这种情况下,不会有答案为空的风险,但这是一个好习惯