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

📄 httptest.java

📁 这是手机下载网络图像源码 共初学者参考
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		}                try {                    c.close();                } catch (IOException ioe) {                    // do not over throw current exception                }	    } else {		t = new TextBox("Http Error", "Could not open URL", 128, 0);	    }	} catch (IllegalArgumentException ille) {	    // Check if an invalid proxy web server was detected.	    t  = new TextBox("Illegal Argument",                               ille.getMessage(), 128, 0);	}        if (is != null) {	    try {		is.close();	    } catch (Exception ce) {; }        }        if (c != null) {	    try {		c.close();	    } catch (Exception ce) {; }        }        setCommands(t, false);	display.setCurrent(t);    }    /**     * Read the header of an HTTP connection. Don't care about     * the actual data.     *     * All response header fields are displayed in a TextBox screen.      * @param request type of HTTP request (GET or POST)     */    private void readHeaders(String request) {        HttpConnection c;	TextBox t;	StringBuffer b;        try {            try {                c = (HttpConnection)Connector.open(url);            } catch (IllegalArgumentException e) {                String m = e.getMessage();                t  = new TextBox("Illegal argument",  e.getMessage(), 128, 0);                setCommands(t, false);                display.setCurrent(t);                return;            } catch (ConnectionNotFoundException e) {                t  = new TextBox("Error", "Protocol not supported", 128, 0);                setCommands(t, false);                display.setCurrent(t);                return;            }            try {                c.setRequestMethod(request);	                    b = new StringBuffer();                b.append("URL: ");                b.append(c.getURL());                b.append("\nProtocol: ");                b.append(c.getProtocol());                b.append("\nHost: " + c.getHost());                b.append("\nFile: " + c.getFile());                b.append("\nRef: " + c.getRef());                b.append("\nQuery: ");                b.append(c.getQuery());                b.append("\nPort: ");                b.append(c.getPort());                b.append("\nMethod: ");                b.append(c.getRequestMethod());                // DEBUG: request DEBUG(b) ;                 if (c instanceof HttpsConnection) {                    // getSecurityInfo should connect                    SecurityInfo sslInfo =                        ((HttpsConnection)c).getSecurityInfo();                    Certificate cert = sslInfo.getServerCertificate();                    b.append("\nSecure protocol: ");                    b.append(sslInfo.getProtocolName());                    b.append("\nSecure protocol version: ");                    b.append(sslInfo.getProtocolVersion());                    b.append("\nCipher suite: ");                    b.append(sslInfo.getCipherSuite());                    if (cert == null) {                        b.append("\nNo server Certficate.");                    } else {                        b.append("\nServer certificate \n\t Type: ");                        b.append(cert.getType());                        b.append("\n\t Version: ");                        b.append(cert.getVersion());                        b.append("\n\t Serial number: ");                        b.append(cert.getSerialNumber());                        b.append("\n\t Issuer: ");                        b.append(cert.getIssuer());                        b.append("\n\t Subject: ");                        b.append(cert.getSubject());                        b.append("\n\t Signature algorithm: ");                        b.append(cert.getSigAlgName());                        b.append("\n\t Not valid before: ");                        b.append(time2str(cert.getNotBefore()));                        b.append("\n\t Not valid after:  ");                        b.append(time2str(cert.getNotAfter()));                    }                }                // if not connected getResponseCode should connect                b.append("\nResponseCode: ");                b.append(c.getResponseCode());                b.append("\nResponseMessage:");                b.append(c.getResponseMessage());                b.append("\nContentLength: ");                b.append(c.getLength());                b.append("\nContentType: ");                b.append(c.getType());                b.append("\nContentEncoding: ");                b.append(c.getEncoding());                b.append("\nContentExpiration: ");                b.append(c.getExpiration());                b.append("\nDate: ");                b.append(c.getDate());                b.append("\nLast-Modified: ");                b.append(c.getLastModified());                b.append("\n\n");                // DEBUG: Reply  DEBUG(b) ;                 int h = 0;                while (true) {                    try {                        String key = c.getHeaderFieldKey(h);                        if (key == null) {                            break;                        }                        String value = c.getHeaderField(h);                        b.append(key);                        b.append(": ");                        b.append(value);                        b.append("\n");                        h++;                        // DEBUG: DEBUG( key + "(" + h + "): " +                        //        value) ;                    }                    catch (Exception e) {                        // DEBUG: DEBUG(                        //     "Exception while fetching headers");                        break;                    }                }                t = new TextBox("Http Test", b.toString(), b.length(), 0);                // DEBUG:	    DEBUG (b.toString());                setCommands(t, false);                display.setCurrent(t);            } finally {                c.close();            }	} catch (ConnectionNotFoundException e) {            t  = new TextBox("Error", "Could not Connect.", 128, 0);            setCommands(t, false);            display.setCurrent(t);            return;	} catch (CertificateException e) {            StringBuffer m = new StringBuffer(256);            String s;            Certificate cert = e.getCertificate();            m.append(e.getMessage());            if (cert != null) {                m.append("\nServer certificate \n\t Type: ");                m.append(cert.getType());                m.append("\n\t Version: ");                m.append(cert.getVersion());                m.append("\n\t Serial number: ");                m.append(cert.getSerialNumber());                m.append("\n\t Issuer: ");                m.append(cert.getIssuer());                m.append("\n\t Subject: ");                m.append(cert.getSubject());                m.append("\n\t Signature algorithm: ");                m.append(cert.getSigAlgName());                m.append("\n\t Not valid before: ");                m.append(time2str(cert.getNotBefore()));                m.append("\n\t Not valid after:  ");                m.append(time2str(cert.getNotAfter()));            }            s = m.toString();            t  = new TextBox("Certificate Error", s, s.length(), 0);            setCommands(t, false);            display.setCurrent(t);            return;	} catch (IOException ex) {            ex.printStackTrace();	}    }    /**     * Set the funtion to perform based on commands selected.     * @param d Displaybale object      * @param islist flag to indicate list processing     */    void setCommands(Displayable d, boolean islist) {        if (islist) {            d.addCommand(addCommand);            d.addCommand(okCommand);        } else {            d.addCommand(exitCommand);            d.addCommand(chooseCommand);            d.addCommand(getCommand);            d.addCommand(postCommand);            d.addCommand(headCommand);        }        d.setCommandListener(this);    }    /**     * Pause signals the thread to stop by clearing the thread field.     * If stopped before done with the iterations it will     * be restarted from scratch later.     */    public void pauseApp() {    }    /**     * Destroy must cleanup everything.  The thread is signaled     * to stop and no result is produced.     * @param unconditional Flag to indicate that forced shutdown     * is requested     */    public void destroyApp(boolean unconditional) {    }    /**     * Respond to commands, including exit     * @param c command to perform     * @param s Screen displayable object     */    public void commandAction(Command c, Displayable s) {        synchronized (this) {            if (commandThread != null) {                // process only one command at a time                return;            }            currentCommand = c;            commandThread = new Thread(this);            commandThread.start();        }    }    /**     * Perform the current command set by the method commandAction.     */    public void run() {        if (currentCommand == exitCommand) {            destroyApp(false);            notifyDestroyed();        } else if (currentCommand == getCommand) {            readContents(HttpConnection.GET);        } else if (currentCommand == postCommand) {            readContents(HttpConnection.POST);        } else if (currentCommand == headCommand) {            readHeaders(HttpConnection.HEAD);        } else if (currentCommand == chooseCommand) {            chooseScreen();        } else if (currentCommand == okCommand) {            int i = list.getSelectedIndex();            if (i >= 0) {                url = list.getString(i);            }                            mainScreen();        } else if (currentCommand == addSaveCommand) {            urls.addElement(addTextBox.getString().trim());            chooseScreen();        } else if (currentCommand == addCommand) {            addScreen();        } else if (currentCommand == cancelCommand) {            chooseScreen();        }        synchronized (this) {            // signal that another command can be processed            commandThread = null;        }    }}

⌨️ 快捷键说明

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