Handling complex URLs with HttpURLConnection

The problem I am facing is that when I try opening a complex URL using HTTPUrlConnection, I get a Bad Request Error.
For eg: f the URL is simple (as shown below) the code works fine.
URL urlPage = new URL( "http://www.google.com" );
HttpURLConnection hucnCon = ( HttpURLConnection ) urlPage.openConnection();
But if the URL conatins some special charcters like
"http://www.google.com/search?q=HTTPURLConnection+Example&hl=en&start=30&sa=N"
I get a bad request page.
I had be grateful if somebody could provide me with a solution to this.
Thanks

Hi ,
Thanks for the posting but if I dfo this
URL urlPage = new URL( URLEncoder.encode("http://www.google.com/search?hl=en&q=dcm&btnG=Google+Search") );
I end up getting a malformedURLException.
Thanks

Similar Messages

  • Problem with HttpURLConnection and HttpSession.

    Hi,
    Problem with HttpURLConnection and HttpSession.
    I created a HttpSession object in my main class and then called a URL via HttpURLConnection.
    I tried to access the same session object from the servlet called by the URL . but the main session
    is not returned a new seperate session is created.let me know how can we continue the same session in
    the called URL also which is created in main class.
    Thanks
    Prasad

    You are not supported to create a HttpSession by java client. Only J2EE web container can create it.

  • Drive Utility Help Viewer "does not know how to handle selected URL"

    I have Drive Utility 10.5.6, according to . I'm trying to reformat a FAT32 partition on an external drive to Mac OS X Ext. Journaled in preparation for using SuperDuper to back up my Mac HD boot partition. For a time, which seems to have passed, now that erasing the partition has been done. The Disk Utility Help wouldn't work. Instead of putting up topic information, I got a message saying "Help Viewer does not know how to handle selected URL", followed by an reference to an html file that allegedly existed inside a set of folders inside the app. Where, of course, Finder cannot see. Once the erasing was done, Help seems to have come back. I tried Apple Support, but could only get a reference to OS 9 Appleworks macros not working in OS X. No help at all. Is this a question? I don't know. Help is working now. But for a while it was very annoying. It must be one of those little windows glitches that no one ever bothered to fix.

    In order to change a FAT or NTFS formatted drive for use with OS X you will need to do the following:
    Extended Hard Drive Preparation
    1. Open Disk Utility in your Utilities folder.
    2. After DU loads select your hard drive (this is the entry with the mfgr.'s ID and size) from the left side list. Click on the Partition tab in the DU main window.
    3. Under the Volume Scheme heading set the number of partitions from the drop down menu to one. Set the format type to Mac OS Extended (Journaled.) Click on the Options button, set the partition scheme to GUID (for Intel Macs) or APM (for PPC Macs) then click on the OK button. Click on the Partition button and wait until the process has completed.
    4. Select the volume you just created (this is the sub-entry under the drive entry) from the left side list. Click on the Erase tab in the DU main window.
    5. Set the format type to Mac OS Extended (Journaled.) Click on the Options button, check the button for Zero Data and click on OK to return to the Erase window.
    6. Click on the Erase button. The format process can take up to several hours depending upon the drive size.
    If you have an Intel Mac and can partition the drive using GUID then you can have FAT32 and OS X partitions on the same drive.
    As for problems with the Help viewer see:
    In most cases doing the following will restore the Help Viewer:
    1. Trash the following three files, if extant:
    /Home/Library/Preferences/com.apple.help.plist
    /Home/Library/Preferences/com.apple.helpui.plist
    /Home/Library/Preferences/com.apple.helpviewer.plist
    2. Trash the /Home/Library/Caches/com.apple.helpui folder.
    3. Empty the Trash and Restart.
    Visit The XLab FAQs and read the FAQ on the Help Viewer for additional suggestions.

  • How to handle fieldnames ending with # in JDBC receiver?

    Hello Experts,
      I am developing a scenario JDBC to IDOC. I have 2 tables for  header & line item. I have to retrieve a header record first using sender JDBC & then for that header need to fetch the corresponding lineitems from second table.
        We cannot have data types defined in XI with fieldnames containing # or any other special charecter. Both DB tables contain fieldnames ending with #.
      For Sender JDBC, I managed it in SQL query using :
        Select abc, xyz# as xyz .... from tbname
    But for receiver JDBC we need to define a data type with the typical format ( Doccument format required for JDBC receiver).
    Please let me know how to handle this for JDBC receiver.
    Thanks in Advance & hope for a quick replies.
    Abhijeet.

    Hi Abhijeet,
    If you can write a query with join( you can call join query using JDBC adapter), i think this would be a fastest way and good approch rather than having 2 JDBC call.
    Another approch would be writing SP( stored procedure and then you can have your complete logic here). You can call SP using JDBC adapter.
    Eventhough query would be complex...it will be one time job.:)...I am not sure about data type for handling field names with special characters.
    Let me know if you need more details.
    Nilesh

  • Doubt handling Clob columns with Java JDBC api

    Hi,
    we have a doubt handling Clob columns with Java JDBC api.
    Reading Oracle 10g official documentation (document b10979.pdf, page 236), we found this note:
    ============================================
    To write LOB data, the application must acquire a write lock on the LOB object. One way to accomplish this is through a SELECT FOR UPDATE. Also, disable auto-commit mode.
    ============================================
    We also found a java sample code about how to handle Lob objects at this URL:
    http://www.oracle.com/technology/sample_code/tech/java/sqlj_jdbc/files/advanced/LOBSample/LOBSample.java.html
    In our java2 application, we access Clob objects in a quite different
    manner: we use normal setString() and getString() methods, as described into paragraph "Shortcuts For Inserting and Retrieving CLOB Data"
    (document b10979.pdf, page 244).
    Using those methods, we never lock the table row by a SELECT FOR UPDATE statement (as described into the note above). We use simply SELECT, UPDATE and INSERT prepared statement.
    In this way we can insert both clob objects and normal timestamp, number and other types with a single insert statement. Idem for update.
    To recap, our question is:
    Is it mandatory to create a SELECT FOR UPDATE statement when updating clob data? What may be the consequences if we don't use it? It is also correct to insert with a single sql statement both clob and not clob data using the setString() method for the clob types? And more than one lob column in the same record?
    bye,
    luca acri.

    And columns of type FLOAT. These also have, for some unknown reason a metadata type of OTHER, and a type string of 'FLOAT'. Yet PreparedStatement.setNull(x, Types.OTHER) doesn't work and setNull(x, Types.DECIMAL) does.

  • Help Please with HttpURLConnection

    We�re having an issue with HttpURLConnection when executing from a servlet, initially reached through a Proxy server. A little background of our environment and overall processing taking place:
    We have a typical multi-tier extranet architecture with firewalls between our Web, App and Data layers. The application (Websphere) experiencing this issue; 1) is first invoked by an https request that�s passed back to the app layer, 2) this initial servlet then opens a URLConnection to tunnel back through a Proxy server (sitting between Web and App layers) and passes a subsequent request to another Websphere servlet, 3) from this second servlet a new HttpURLConnection is opened and attempts to issue a request to a servlet running under Tomcat (directly accessible from the Application-Tier layer).
    It�s been determined the HttpURLConnection is not connecting directly to Tomcat, but instead going back through the Proxy server (opened earlier) to the Web-Tier layer, where our Tomcat server can�t be reached. We�ve had no problems executing the HttpURLConnection and sending requests directly to Tomcat server, from servlets where the Proxy server is bypassed. We�ve looked at the attributes and methods for HttpURLconnection and haven�t come across anything to override the OutputStream that�s pointing back to the initial Proxy connection.
    Following are code snippets from both initial URLconnection (Proxy) and subsequent HttpURLConnection (Tomcat):
    Proxy
    Properties systemSettings = System.getProperties();
    systemSettings.put("proxySet", "true");
    systemSettings.put("proxyHost", "myProxyServer.com");
    systemSettings.put("proxyPort", "8080");
    System.setProperties(systemSettings);
    URL url=new URL("http://someserver/somepage");
    URLConnection uc = url.openConnection ();
    Tomcat
    requestData.put("Fld1", var_1);
    requestData.put("Fld2", var_2);
    requestData.put("Fld3", var_3);
    requestData.put("Fld4", var_4);
    //Encode the POST data in application /x-www-form-urlencoded format
    byte[] postData = encodeFormData(requestData);
    HttpURLConnection connection = (HttpURLConnection) (new URL(var_URL).openConnection());
    connection.setRequestMethod("POST");
    connection.setDefaultUseCaches(false);
    connection.setDoInput(true);
    connection.setDoOutput(true);
    connection.setInstanceFollowRedirects(false);
    connection.getOutputStream().write(postData);

    If you are using JDK 1.5 or 1.6:
    http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLConnection.html#setReadTimeout(int)

  • Help With HttpURLConnection and PHP

    I can connect to a site with HttpURLConnection but i need to access a link FROM that site.
    Ex: www.hangman/index.php
    I need to get a link like www.hangman/index.php?letter=a
    It will only display the letter if you go from www.hangman/index.php and click on the letter. But how do i do that with HttpURLConnection.
    I think you have to use the POST , but it doesnt work.
    Thanks.

    That's probably because the site uses cookies to maintain a session.
    The cookie's name is PHPSESSID, so I'm guessing this is a standard PHP session maintenance system (I haven't worked with PHP much...).
    So if you want to create a java app that will play hangman from that site, it looks like you'll have to handle cookies to keep the session active between accesses. So you'll grab the cookie from the response headers in the first connection, and then send it to the server in the request headers in subsequent connections. The cookie may remain the same throughout the session, or it may change on each connection; I don't know.
    I did a quick google and found this:
    http://jcookie.sourceforge.net/
    I haven't used it myself, but it looks useful. Unless you're doing this as a learning exercise, it's probably easier to use this than to wrote your own cookie code.

  • Secial Character in a complex Url

    Hi,
    We have configured a crawl for a complex URL and it's working.
    But there is exeptions with link contain french special character, i know is never a good idea to have this kind of carathere on a URL but you knows users ...
    My question is if someone have clearly information who described limitation for the crawl engine and special characters ?
    Thanks for helping us
    Regards
    Nicolas

    Hi,
    Based on my research, the issue seems related to Latin symbols, I would like to confirm whether you have used
    of localized URLs with non-Latin symbols. If so, please avoid using non-Latin symbols in the localized URLs, for details, you may refer to the following article:
    Support of Scandinavian characters in Sharepoint URLs
    http://sadomovalex.blogspot.com/2011/10/support-of-scandinavian-characters-in.html
    If you have any questions or concerns, please feel free to let me know.
    Best Regards,
    Dats Luo

  • How do I redirect to a URL with JavaScript on submit in Adobe LiveCycle

    How do I redirect to a specific URL with JavaScript upon submit in Adobe LiveCycle?
    I already have the code in place where the submit event is handled, and just need the specific code to do the redirect.
    Standard asp.net-style redirects such as
    windows.location.replace(http://myURL.com);
    do not work.
    Any help would be appreciated.

    To be able to redirect a website with a submit button, you must have a custom submit button and insert the following line:
    app.launchURL("www.url.com");

  • Why do I have to append URL with /index.htm on one KB?

    I have 7 different KBs I maintain on my webserver. I am using RoboHelp 7. For one of them, I have to append the URL with /index.htm, or it does not show the correct information. Examples of two of the KBs, and what happens with & without the index.htm appendeden
    I will happily provide any other information. I've been wondering about this for a long time, and it's finally driven me batty enough to ask. Thanks so much for any assistance. Greatly appreciate your input, this is a wonderful resource.
    http://wpa10suppliertest.am.mot-mobility.com/ opens a training KB for supplier information. See screenshot of the WebHelp Primary Layout:
    However, for http://wpa10user.am.mot-mobility.com/ if I do not append with http://wpa10user.am.mot-mobility.com/index.htm, I get no content, and the first skin I tried out. The settings are the same:
    http://wpa10user.am.mot-mobility.com/:
    http://wpa10user.am.mot-mobility.com/index.htm:

    Hi William,
    That makes sense - but I had looked at my IIS setups and they appear the same for all KBs, again here are settings for WPA Supplier & User. I created both the same day, the same way, and have compared all tabs which are identical. I can double check on how the DNS aliases that were set up, but they should have been identical as well

  • Printing different URL with javascript

    I am trying to print a URL using javascript but i do not want to print the current page. I have searched google, this forum and a javascript book and can not seem to figure it out. To exlplain in it generic terms i want to be on one page and tell it to print another. Reason being, I am looking at an overview page and want to print a report made in Oracle reports, (Yes I could load the report and print it but i want to print multiple reports from one button)(The reports do work and are valid) Here is a rundown of what I am doing.
    From a button i am calling a 'url' with the following code:
    javascript:V_PRINT('P50_CUSTOMER_ID','P50_YEAR');
    And then in the html header i have the code: (printing same page twice, just an example)
    <script language="JavaScript" type="text/javascript">
    function V_PRINT (formItem1,formItem2) {
    var formVal1 = document.getElementById(formItem1).value;
    var formVal2 = document.getElementById(formItem2).value;
    var url1;
    var url2;
    url1 = 'http://www.google.com/search?hl=en&q=' + formVal1 + '+' + formVal2;
    url2 = 'http://www.google.com/search?hl=en&q=' + formVal1 + '+' + formVal2;
    url1 = print();
    url2 = print();
    </script>
    This code just prints the current page. I know I am calling print incorrectly and thats where i need the help. Of course I might just be approaching it all wrong. Either way I hope someone with javascript knowledge can help.
    Thanks

    Hello,
    To print a page it has to be open in the browser since all it does it call the browsers print dialog.
    Here is one solution http://www.irt.org/script/508.htm and you can also try a iframe instead of a regular frame.
    If it's crossdomain request like your example here that might cause problems as well. There might be additional problems.
    Carl

  • How to read the param in an URL with an applet???

    I will like to read the in an URL with an applet param (after the ?)
    I need the equivalent of: String parm1 = request.getParameter("param"); but for applet
    I think the HttpServletResponse doesn't work in an applet ???
    Tell me if I'am right
    Thanks for your help
    Benoit

    Hi
    What you can do is, just get that URL in the web page. Like as we can get in the ASP. Store the required information in the variables and pass this information as parameters to the applet.
    Hope this helps!

  • Is it possible to create a complex sound with 12 harmonic partials in Audition

    Hi all,
    I am new to Audition 3. I have an experiment which needs a complex stimuli with 12 partials. Is it possible to create such a stimuli is Audition 3.
    Thank you,
    Varghese

    If you can calculate what all the harmonics you want are, and their relative amplitudes, then this would be relatively easy to do for 12, yes. But I'd be inclined to create them as single tones and import these into Multitrack view - it's then relatively easy to manipulate the levels of each for a mixdown.

  • How to handle multiple clients with DatagramSocket

    I am trying to handle multiple clients with 1 datagramSocket bind to one port (basically I have only one port to use, and I can not use TCP or any other ports). At the server side I have two threads one for receiving packets and buffering them, another for processing the packets in the buffer and sending replies.
    I can have multiple clients sending datagramPackets to me and I will have to process the packets and send them to DIFFERENT clients. Ex. Client 1 sends datagramPacket to Server which sends the processed packet to Client 2. Also Client 2 sends a datagramPacket to Server which again processes the packet and sends it to Client1. May have Client 3 and 4 doing the same thing at the same time... and so on...
    My root class is creating the datagramSocket(somePort) and two threads (receiver and sender). How can I use the socket that I created in these two threads??
    I have done the following and I am getting "java.net.bindexception". When I am sending stuff from Client1 to Client2 everything is fine but when I start sending something from Client2 to Client 1, I get the bindexception... Client 1 is using port 3000, Client 2 is using port 4000.
    I really don't have a lot of experience in socket programming so I am not sure if there is a much simpler way to do this. I appreciate all the tips and help that I can get...
    Thanks...
    class UDP_serv
         static DatagramSocket udpSocket;
         final static int SERVER_PORT     = 2000;
         public static void main(String[] args) throws SocketException
              udpSocket= new DatagramSocket(SERVER_PORT);
              new DataReceiver().start ();
              new DataSender().start ();
         static class DataReceiver extends Thread
              DataReceiver()
                   Thread.currentThread().setName("DataReceiver");
              public void run()
                   while (true)
                        byte pckt[] = new byte [MaxMsgSize];          
                        DatagramPacket dp = new DatagramPacket (pckt, pckt.length);
                        try
                             udpSocket.receive (dp);
                             //PUSH TO RECEIVE BUFFER
                        catch(Exception e)
                             e.printStackTrace();
         static class DataSender extends Thread
              DataSender()
                   Thread.currentThread().setName("DataSender");
              public void run()
                   while (true)
                        processDataMsg();
          static void processDataMsg() 
             DatagramPacket op;
             InetAddress DA = null;
             int DP = 0;
             byte [] outPacket = null;
             // POP FROM RECEIVE BUFFER
             // SOME PROCESSING HERE     
             // Set Destination Address (DA)
             // Set Destination Port (DP)
             // DA and DP are the forwarding IP and Port addresses
             // not the addresses original packet was sent from.
             try
              op = new DatagramPacket (outPacket, outPacket.length,DA, DP);
              udpSocket.send(op);
             catch (IOException e)
              e.printStackTrace();
    }Also for development and testing purposes, I am running the two clients and the server on the same machine (windows xp-32b) so all of the Destination IP Addresses are 127.0.0.1. and as I said Ports that I am using are 2000, 3000, 4000 (Server, Client1, Client2).

    Hmm I have minimized the code and it seems to be working now.
    I think I have an error in the header portion of the data I am sending, where I am storing the source IP/Port and destination IP/Port. I think the server in the middle is messing these values up while sending them to the destination Client. Because the destination client actually receives the stuff and sends the reply back to the server, but the reply packet's headers has 0/0 as the dest IP / Port...
    Server is giving me java.net.BindException: Cannot assign requested address error when it tries to forward the reply it received from the client2 as the address it is trying to send is 0!
    I guess it doesnt just give this error when you try to open two sockets to the same port...
    Paul, Thanks for the direction on how to proceed... took me a while get the minimized code but at least figured out the problem. Well still have to make sure that is THE problem though :)
    As far as the statics goes how can I change those to non static ones? Where do I make an instance of the top level class that creates the threads? and how do I pass the DatagramSocket to the threads/ if I dont need to pass how do I call or use the datagramSocket I created in the top level class? I mean do I still kinda have it like a global variable on the top?? A very simple example would be much appreciated...
    I think these might be really basic questions but I am having a rough time with the hierarchy in java...

  • "there was a problem connecting to the server. URLS with the type 'file' are not supported"

    i have a new macbook pro 13" and every 6 minutes or so it pops up a window that says "there was a problem connecting to the server. URLS with the type 'file' are not supported". it never seems to cause any problems but is supremely annoying. how can i make this come to an end?

    I tried someone's solution of taking another external disc and plugging it in, then when it showed up and time machine asked if I wanted to use it or that someone might be trying to trick me, I chose not use it.  Then I  shut down my computer, plugged in the original Lacie, and rebooted the computer and all seems to work fine now-- the Lacie appears on my desktop and all seeems to be in working order. Who knows why or anything else,- as weird as it gets- but for now things seemed fixed--- maybe others can try this too-- it worked for me so far.

Maybe you are looking for

  • Invalid Digital Signatures

    Hi I have a HP Spectre xt 13-2100ea windows 8 and i recently uploaded windows 7 instead of 8 and all is good except my Card reader and high speed USB 3.0 are not working. I am getting an message saying that windows cannot verify the digital signature

  • Can't open new tab by clicking on the "+" icon

    I cannot launch a new tab by clicking on the "+" icon on the tab toolbar. However; if I right click it and select "new tab", then one opens == This happened == Every time Firefox opened == I'm not sure what caused this to happen. Only recently notice

  • Displaying an object!!

    Hi all..... In the following code I'm trying to draw a square and display it on the 3d scene/canvas. I plan to texture that square into a particle but at the moment my main concern is to see it on the canvas, could anyone help me do this, I can't see

  • I cannot click on certain links in emails. What can I do to access these links? Thanks

    # Question I cannot click on certain links in emails. What can I do to access these links? Thanks

  • ISE, BYOD: guest clients provisioning

    Hello! The question is about provisioning different types of wifi clients through the ISE Guest portal. ISE 1.1.4, WLC 7.4.100 (Guest WLAN uses MAB) Suppose, there are two groups of wireless clients: 1) guest user, which credentials are created throu