0

I am trying to write the following section of php code in java. I will provide the php code and the java code. What I would like help with is a) am I even on the right track and b) the line with the "Please help here" comment, I am unsure of how to do this in java. This line is header("Location: ".$strCitiRedirectURL.$content."");

Thank you in advance.

php code:

$req =& new HTTP_Request($strCitiLoginURL);
            $req->setMethod(HTTP_REQUEST_METHOD_POST);
            $req->addPostData("instusername", $strInstUsername);
            $req->addPostData("institution", $strInstitution);
            $req->addPostData("key", $strInstitutionKey);
            $req->addPostData("type", "returning");

            $response = $req->sendRequest();

            if(isset($_GET['showDebug'])){          
                print $req->_buildRequest(); 
            }

            if (PEAR::isError($response)) {
                $content = $response->getMessage();
            } else {
                $content = $req->getResponseBody();
            }

            /* Check for 44 Character UUID */
            if (preg_match($pattern,$content)){
                print 'Success';
                ob_start();
                header("Location: ".$strCitiRedirectURL.$content."");
                ob_flush();
            /* No UUID.  Login to CITI failed.  We may need a new user */
            }elseif ($content == "-  error: learner not affiliated with institution, add learner or provide username and password"){

                // Resubmit as a new user
                /* Package data up to post to CITI */
                $req =& new HTTP_Request($strCitiLoginURL);
                $req->setMethod(HTTP_REQUEST_METHOD_POST);
                $req->addPostData("instusername", $strInstUsername);
                $req->addPostData("institution", $strInstitution);
                $req->addPostData("key", $strInstitutionKey);
                $req->addPostData("type", "new");
                $req->addPostData("first", $strFirst);
                $req->addPostData("last", $strLast);
                $req->addPostData("email", $strEmail);

                $response = $req->sendRequest();

                if(isset($_GET['showDebug'])){          
                    print $req->_buildRequest(); 
                }

                if (PEAR::isError($response)) {
                    $content = $response->getMessage();
                } else {
                    $content = $req->getResponseBody();
                }

                /* Check for 44 Character UUID */
                if (preg_match($pattern,$content)){
                    print 'Success';
                    ob_start();
            /*PLEASE HELP ON THIS LINE*/ header("Location: ".$strCitiRedirectURL.$content."");
                    ob_flush();
                }else{
                    $errMsg = $errMsg.' <li>CITI Error Returned: '.$content.'.</li>';
                }

java code

//****CITI CONFIGURATION****
            final String pattern = "([0-9A-\\-]{44})";
            final String CitiRedirectUrl = "https://www.citiprogram.org/members/mainmenu.asp?strKeyID=";
            final String CitiLoginUrl = "http://www.citiprogram.org/remoteloginII.asp";
            //****END CITI CONFIGURATION****

            try {
                // Construct data
                String data = URLEncoder.encode("instusername", "UTF-8") + "=" + URLEncoder.encode(c_form.getCan(), "UTF-8");
                data += "&" + URLEncoder.encode("institution", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
                data += "&" + URLEncoder.encode("key", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
                data += "&" + URLEncoder.encode("type", "UTF-8") + "=" + URLEncoder.encode("returning", "UTF-8");

                // Send data
                URL url = new URL("http://www.citiprogram.org/remoteloginII.asp");
                URLConnection conn = url.openConnection();
                conn.setDoOutput(true);
                OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
                wr.write(data);
                wr.flush();

                // Get the response
                BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                String line;
                while ((line = rd.readLine()) != null) {
                    System.out.println(line);
                    if (pregMatch(pattern, line)) {
                        //Do the header part from the php code
                    } else if (line.equals("-  error: learner not affiliated with institution, add learner or provide username and password")) {
                        // Resubmit as a new user
            /* Package data up to post to CITI */

                        // Construct data
                        String newdata = URLEncoder.encode("instusername", "UTF-8") + "=" + URLEncoder.encode(c_form.getCan(), "UTF-8");
                        newdata += "&" + URLEncoder.encode("institution", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
                        newdata += "&" + URLEncoder.encode("key", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
                        newdata += "&" + URLEncoder.encode("type", "UTF-8") + "=" + URLEncoder.encode("returning", "UTF-8");

                        // Send data
                        OutputStreamWriter newwr = new OutputStreamWriter(conn.getOutputStream());
                        newwr.write(data);
                        newwr.flush();

                        // Get the response
                        BufferedReader newrd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                        String newline;
                        while ((newline = newrd.readLine()) != null) {
                            System.out.println(newline);
                            if (pregMatch(pattern, newline)) {
                            } else {
                                //Print error message
                            }
                        }
                    }
                }
                wr.close();
                rd.close();
            } catch (Exception e) {
            }

//Check for 44 character UUID
    public static boolean pregMatch(String pattern, String content) {
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(content);
        boolean b = m.matches();
        return b;
    }
1

1 Answer 1

1

I believe

header("Location: ".$strCitiRedirectURL.$content."");

in PHP would be the same as the following in Java (using your wr object):

wr.sendRedirect("http://path.to.redirect/");

You could also forward the request, but I have a feeling you just want the client to redirect to citirewards or whatever, in which case sendRedirect is the solution.

EDIT: Source - http://docs.oracle.com/javaee/1.3/api/javax/servlet/http/HttpServletResponse.html#sendRedirect(java.lang.String)

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.