⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 networkquery.java

📁 j2me开发的一些例子
💻 JAVA
字号:
/* * Copyright (c) 2000-2001 Sun Microsystems, Inc. All Rights Reserved. */package examples.addressbook;import java.io.*;import java.util.*;import javax.microedition.rms.*;import javax.microedition.io.*;/* * Class to query a network service for address book entries * and parse the result. Uses HttpConnection to fetch * the entries from a server. * * The http request is made using a base url provided by the caller * with the query arguments for last name and first name * encoded in the query parameters of the URL. */public class NetworkQuery implements RecordEnumeration {    private StringBuffer buffer = new StringBuffer(60);    private String[] fields = new String[3];    private String empty = new String();    private Vector results = new Vector(20);    private Enumeration resultsEnumeration;    final static String baseurl =        "http://127.0.0.1:8080/Book/netaddr";    /**     * Create a RecordEnumeration from the network.     *     * Query a network service for addresses matching the     * specified criteria. The base URL of the service     * has the query parameters appended. The request is     * made and the contents parsed into a Vector which     * is used as the basis of the RecordEnumeration.     * lastname  the last name to search for     * firstname the first name to search for     * sortorder the order in which to sort     *       1 is by last name, 0 is by first name     */    NetworkQuery(String firstname,                 String lastname,                 int sortorder) {        HttpConnection c = null;        int ch;        InputStream is = null;        InputStreamReader reader;        String url;        // Format the complete URL to request        buffer.setLength(0);        buffer.append(baseurl);        buffer.append("?last=");        buffer.append((lastname != null) ? lastname : empty);        buffer.append("&first=");        buffer.append((firstname != null) ? firstname : empty);        buffer.append("&sort=" + sortorder);        url = buffer.toString();        // Open the connection to the service        try {            c = open(url);            results.removeAllElements();            /*             * Open the InputStream and construct a reader to             * convert from bytes to chars.             */            is = c.openInputStream();            reader = new InputStreamReader(is);            while (true) {                int i = 0;                fields[0] = empty;                fields[1] = empty;                fields[2] = empty;                do {                    buffer.setLength(0);                    while ((ch = reader.read()) != -1 &&                        (ch != ',') && (ch != '\n')) {                        if (ch == '\r') {                            continue;                        }                        buffer.append((char)ch);                    }                    if (ch == -1) {                        throw new EOFException();                    }                    if (buffer.length() > 0) {                        if (i < fields.length) {                            fields[i++] = buffer.toString();                        }                    }                } while (ch != '\n');                if (fields[0].length() > 0) {                    results.addElement(                        SimpleRecord.createRecord(                            fields[0], fields[1], fields[2]));                }            }        } catch (Exception e) {        } finally {            try {                if (is != null) {                    is.close();                }                if (c != null) {                    c.close();                }            } catch (Exception e) {            }        }        resultsEnumeration = results.elements();    }    /**     * Read the HTTP headers and the data using HttpConnection.     * Check the response code to ensure successful open.     *      * Connector.open is used to open url and a HttpConnection     * is returned.     * The HTTP headers are read and processed.     *  url the URL to open     * throws IOException for any network related exception     */    private HttpConnection open(String url) throws IOException {        HttpConnection c;        int status = -1;        // Open the connection and check for redirects        while (true) {            c = (HttpConnection)Connector.open(url);            // Get the status code,             // causing the connection to be made            status = c.getResponseCode();            if ((status == HttpConnection.HTTP_TEMP_REDIRECT) ||                (status == HttpConnection.HTTP_MOVED_TEMP) ||                (status == HttpConnection.HTTP_MOVED_PERM)) {                // Get the new location and close the connection                url = c.getHeaderField("location");                c.close();            } else {                break;            }        }        // Only HTTP_OK (200) means the content is returned.        if (status != HttpConnection.HTTP_OK) {            c.close();            throw new IOException("Response status not OK");        }        return c;    }    /**     * Returns true if more elements exist in enumeration.     */    public boolean hasNextElement() {        return resultsEnumeration.hasMoreElements();    }    /**     * Returns a copy of the next record in this enumeration,     */    public byte[] nextRecord() {        return (byte[])resultsEnumeration.nextElement();    }    /**     * The following are simply stubs that we don't     * implement...     */    public boolean hasPreviousElement() {return false;}    public void destroy() {}    public boolean isKeptUpdated() {return false;}    public void keepUpdated(boolean b) {return;}    public int nextRecordId() {return 0;}    public int numRecords() {return 0;}    public byte[] previousRecord() {return null;}    public int previousRecordId() {return 0;}    public void rebuild() {return;}    public void reset() {return;}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -