📄 curlmodule.java
字号:
curl.setIsFollowingRedirects(value.toBoolean()); break; case CURLOPT_FRESH_CONNECT: // caching handled by Java break; case CURLOPT_HEADER: curl.setIsReturningHeader(value.toBoolean()); break; case CURLOPT_HTTPGET: curl.setRequestMethod("GET"); break; case CURLOPT_HTTPPROXYTUNNEL: curl.setIsProxying(value.toBoolean()); break; case CURLOPT_MUTE: curl.setIsVerbose(! value.toBoolean()); break; case CURLOPT_NETRC: //username:password file //XXX break; case CURLOPT_NOBODY: curl.setIsReturningBody(false); break; case CURLOPT_NOPROGRESS: //XXX break; case CURLOPT_POST: curl.setRequestMethod("POST"); break; case CURLOPT_PUT: curl.setRequestMethod("PUT"); break; case CURLOPT_RETURNTRANSFER: curl.setIsReturningData(value.toBoolean()); break; case CURLOPT_UNRESTRICTED_AUTH: //XXX break; case CURLOPT_SSL_VERIFYPEER: curl.setIsVerifySSLPeer(value.toBoolean()); break; case CURLOPT_UPLOAD: if (value.toBoolean()) curl.setRequestMethod("PUT"); break; case CURLOPT_VERBOSE: curl.setIsVerbose(value.toBoolean()); break; // // ints // case CURLOPT_BUFFERSIZE: //XXX break; case CURLOPT_CONNECTTIMEOUT: curl.setConnectTimeout(value.toInt() * 1000); break; case CURLOPT_HTTP_VERSION: if (value.toInt() == CURL_HTTP_VERSION_1_0) { env.stub("cURL HTTP/1.0 not specifically supported"); } break; case CURLOPT_HTTPAUTH: // get authentication method from server instead/* int method = value.toInt(); if ((method & CURLAUTH_BASIC) == CURLAUTH_BASIC) curl.setAuthenticationMethod(CURLAUTH_BASIC); else if ((method & CURLAUTH_DIGEST) == CURLAUTH_DIGEST) curl.setAuthenticationMethod(CURLAUTH_DIGEST); else env.stub("cURL Http authentication method not supported");*/ break; case CURLOPT_INFILESIZE: curl.setUploadFileSize(value.toInt()); break; case CURLOPT_LOW_SPEED_LIMIT: //XXX break; case CURLOPT_LOW_SPEED_TIME: //XXX break; case CURLOPT_MAXCONNECTS: //XXX break; case CURLOPT_PORT: curl.setPort(value.toInt()); break; case CURLOPT_PROXYAUTH: //XXX break; case CURLOPT_PROXYPORT: curl.setProxyPort(value.toInt()); break; case CURLOPT_PROXYTYPE: switch (value.toInt()) { case CURLPROXY_HTTP: curl.setProxyType("HTTP"); break; case CURLPROXY_SOCKS5: curl.setProxyType("SOCKS"); break; default: env.warning(L.l("unknown curl proxy type")); } break; case CURLOPT_SSL_VERIFYHOST: i = value.toInt(); switch (i) { case 0: curl.setIsVerifySSLCommonName(false); curl.setIsVerifySSLHostname(false); break; case 1: curl.setIsVerifySSLCommonName(true); curl.setIsVerifySSLHostname(false); break; case 2: curl.setIsVerifySSLCommonName(true); curl.setIsVerifySSLHostname(true); break; default: env.warning(L.l("unknown ssl verify host option '{0}", i)); } break; case CURLOPT_TIMECONDITION: switch (value.toInt()) { case CURL_TIMECOND_IFMODSINCE: curl.setIfModifiedSince(true); break; case CURL_TIMECOND_IFUNMODSINCE: curl.setIfModifiedSince(false); break; default: env.warning(L.l("invalid CURLOPT_TIMECONDITION option")); } break; case CURLOPT_TIMEOUT: curl.setReadTimeout(value.toInt() * 1000); break; case CURLOPT_TIMEVALUE: long time = value.toLong() * 1000L; String format = "%a, %d %b %Y %H:%M:%S %Z"; String date = QDate.formatGMT(time, format); curl.setModifiedTime(date); break; // // strings // case CURLOPT_COOKIE: curl.setCookie(value.toString()); break; case CURLOPT_COOKIEFILE: // XXX: Netscape cookie format support ReadStream in = null; try { Path path = env.getPwd().lookup(value.toString()); if (path.exists()) { in = path.openRead(); StringBuilder sb = new StringBuilder(); int ch; while ((ch = in.read()) >= 0) { sb.append((char)ch); } curl.setCookie(sb.toString()); } } catch (IOException e) { throw new QuercusModuleException(e); } finally { if (in != null) in.close(); } break; case CURLOPT_COOKIEJAR: //XXX: Netscape cookie file format curl.setCookieFilename(value.toString()); break; case CURLOPT_CUSTOMREQUEST: curl.setRequestMethod(value.toString()); break; case CURLOPT_ENCODING: String encoding = value.toString(); if (encoding.length() == 0) encoding = "gzip, deflate, identity"; curl.setRequestProperty("Accept-Encoding", encoding); break; case CURLOPT_POSTFIELDS: curl.setRequestMethod("POST"); curl.setPostBody(value.toBinaryValue(env)); break; case CURLOPT_PROXY: curl.setIsProxying(true); curl.setProxyURL(value.toString()); break; case CURLOPT_PROXYUSERPWD: String proxyUserPwd = value.toString(); i = proxyUserPwd.indexOf(':'); if (i >= 0) curl.setProxyUsername(proxyUserPwd.substring(0, i)); curl.setProxyPassword(proxyUserPwd.substring(i + 1)); break; case CURLOPT_RANGE: curl.setRequestProperty("Range", "bytes=" + value.toString()); break; case CURLOPT_REFERER: curl.setRequestProperty("Referer", value.toString()); break; case CURLOPT_URL: setURL(curl, value.toString()); //curl.setURL(value.toString()); break; case CURLOPT_USERAGENT: curl.setRequestProperty("User-Agent", value.toString()); break; case CURLOPT_USERPWD: String userpwd = value.toString(); i = userpwd.indexOf(':'); if (i >= 0) curl.setUsername(userpwd.substring(0, i)); curl.setPassword(userpwd.substring(i + 1)); break; // // arrays // case CURLOPT_HTTP200ALIASES: //XXX: nonstandard HTTP replies like "FOO HTTP/1.1 OK" break; case CURLOPT_HTTPHEADER: ArrayValue array = value.toArrayValue(env); for (Map.Entry<Value,Value> entry: array.entrySet()) { String header = entry.getValue().toString(); String name = header; String body = ""; i = header.indexOf(':'); if (i >= 0) { name = header.substring(0, i).trim(); body = header.substring(i + 1).trim(); } curl.setRequestProperty(name, body); } break; // // fopen stream resources // case CURLOPT_FILE: Object outputFile = value.toJavaObject(); if (outputFile instanceof BinaryOutput) curl.setOutputFile((BinaryOutput)outputFile); break; case CURLOPT_INFILE: Object uploadFile = value.toJavaObject(); if (uploadFile instanceof BinaryInput) curl.setUploadFile((BinaryInput)uploadFile); break; case CURLOPT_STDERR: //XXX break; case CURLOPT_WRITEHEADER: Object outputHeaderFile = value.toJavaObject(); if (outputHeaderFile instanceof BinaryOutput) curl.setOutputHeaderFile((BinaryOutput)outputHeaderFile); break; // // callback functions // case CURLOPT_HEADERFUNCTION: curl.setHeaderCallback(env.createCallback(value)); break; case CURLOPT_PASSWDFUNCTION: curl.setPasswordCallback(env.createCallback(value)); break; case CURLOPT_READFUNCTION: curl.setReadCallback(env.createCallback(value)); break; case CURLOPT_WRITEFUNCTION: curl.setWriteCallback(env.createCallback(value)); break; default: env.warning(L.l("CURL option unknown or unimplemented")); log.log(Level.FINE, L.l("CURL option unknown orunimplemented")); return false; } return true; } /** * Returns the version of this cURL implementation. * * @param env * @param version */ public static ArrayValue curl_version(Env env, @Optional Value version) { throw new UnimplementedException("curl_version"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -