1

So I'm trying to post an IP from java to a php file on the web. The php file will then save it. Though the php file is not receiving the ip.

Java Code:

try {
            // open a connection to the site
            URL url = new URL("http://example.com/useranalytics/join.php");
            URLConnection con = url.openConnection();
            // activate the output
            con.setDoOutput(true);
            PrintStream ps = new PrintStream(con.getOutputStream());
            // send your parameters to your site
            DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            Date date = new Date();
            ps.print("ip=1.0.1.0");
            ps.print("time=" + dateFormat.format(date));

            // we have to get the input stream in order to actually send the request
            con.getInputStream();

            // close the print stream
            ps.close();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

PHP Code(join.php):

<?php
    foreach ($_POST as $key => $value) {
    switch ($key) {
        case 'ip':
            $ip = $value;
            break;
        case 'time':
            $time = $value;
            break;
        default:
            break;
    }
    $ipf = "ipss.txt";
    $handleip = fopen($ipf, "r");
    $ips = fread($handleip, filesize($ipf));
    if (strpos($ips,':' . $ip . ':') !== false) {

    } else {
        file_put_contents('ipss.txt', $ips . PHP_EOL . ':' . $IP . ':');
    }
}
?>

Does anybody have any clue as to why this is happening? I appreciate all and any help. Sorry if it's the PHP code, fairly new to PHP.

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
Andre
  • 778
  • 1
  • 5
  • 23
  • it seems to be the case the the http-post-request is not correct. I consulted my search engine and found this example: http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/ – steven Mar 14 '15 at 22:12
  • your current java code and that php file are incompatible how would the php file know what " case 'ip':" is. Your java should be like this: http://stackoverflow.com/questions/3324717/sending-http-post-request-in-java – Eric Lamas Mar 14 '15 at 22:37

1 Answers1

0
HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://www.a-domain.com/foo/");

// Request parameters and other properties.
List<NameValuePair> params = new ArrayList<NameValuePair>(2);
params.add(new BasicNameValuePair("param-1", "12345"));
params.add(new BasicNameValuePair("param-2", "Hello!"));
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));

//Execute and get the response.
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();

if (entity != null) {
    InputStream instream = entity.getContent();
    try {
        // do something useful
    } finally {
        instream.close();
    }
}

Source: http://hc.apache.org/

PUG Gamer
  • 11
  • 3