📄 curlmodule.java
字号:
return BooleanValue.FALSE; return LongValue.create(curl.getErrorCode()); } /** * Returns the error string from the last operation. * * @param env * @param curl */ public static Value curl_error(Env env, @NotNull CurlResource curl) { if (curl == null) return BooleanValue.FALSE; return env.createString(curl.getError()); } /** * @param env * @param curl */ public static Value curl_exec(Env env, @NotNull CurlResource curl) { if (curl == null) return BooleanValue.FALSE; return curl.execute(env); } /** * Returns information about the last request. * * @param env * @param curl * @param option type of information to return */ public static Value curl_getinfo(Env env, @NotNull CurlResource curl, @Optional Value option) {// if (option instanceof DefaultValue)// return curl.getAllInfo(); if (curl == null) return BooleanValue.FALSE; return getInfo(env, curl, option.toInt()); } private static Value getInfo(Env env, CurlResource curl, int option) { switch (option) { case CURLINFO_EFFECTIVE_URL: return env.createString(curl.getURL()); case CURLINFO_HTTP_CODE: return LongValue.create(curl.getResponseCode()); case CURLINFO_FILETIME: break; case CURLINFO_TOTAL_TIME: break; case CURLINFO_NAMELOOKUP_TIME: break; case CURLINFO_CONNECT_TIME: break; case CURLINFO_PRETRANSFER_TIME: break; case CURLINFO_STARTTRANSFER_TIME: break; case CURLINFO_REDIRECT_TIME: break; case CURLINFO_SIZE_UPLOAD: break; case CURLINFO_SIZE_DOWNLOAD: break; case CURLINFO_SPEED_DOWNLOAD: break; case CURLINFO_SPEED_UPLOAD: break; case CURLINFO_HEADER_SIZE: return LongValue.create(curl.getHeader().length()); case CURLINFO_HEADER_OUT: return curl.getHeader(); case CURLINFO_REQUEST_SIZE: break; case CURLINFO_CONTENT_LENGTH_DOWNLOAD: return LongValue.create(curl.getContentLength()); case CURLINFO_CONTENT_LENGTH_UPLOAD: break; case CURLINFO_CONTENT_TYPE: String type = curl.getContentType(); if (type == null) return NullValue.NULL; return env.createString(type); default: env.warning(L.l("Unknown CURL getinfo option")); } return NullValue.NULL; } /** * Returns a cURL handle. * * @param env * @param url */ public static CurlResource curl_init(Env env, @Optional("") String url) { CurlResource curl = new CurlResource(); if (url != null && url.length() > 0) { setURL(curl, url); //curl.setURL(url); } return curl; } /** * Sets the url and extracts username/password from url. * Format: [protocol://]?[username:password@]?host */ private static void setURL(CurlResource curl, String url) { int atSignIndex = url.indexOf('@'); if (atSignIndex < 0) { curl.setURL(url); return; } int j = url.indexOf("://"); String protocol; if (j < 0) { protocol = "http://"; j = 0; } else { j += 3; protocol = url.substring(0, j); } int colonIndex = url.indexOf(':', j); if (colonIndex < 0) return; curl.setUsername(url.substring(j, colonIndex++)); curl.setPassword(url.substring(colonIndex, atSignIndex++)); curl.setURL(protocol + url.substring(atSignIndex)); } /** * XXX: not documented by PHP * * @param env * @param curls * @param curl */ public static LongValue curl_multi_add_handle(Env env, Value curls, Value curl) { throw new UnimplementedException("curl_multi_add_handle"); } /** * XXX: not documented by PHP * * @param env * @param curls */ public static LongValue curl_multi_close(Env env, Value curls) { throw new UnimplementedException("curl_multi_close"); } /** * XXX: not documented by PHP * * @param env * @param curls * @param stillRunning */ public static LongValue curl_multi_exec(Env env, Value curls, @Reference Value stillRunning) { throw new UnimplementedException("curl_multi_exec"); } /** * XXX: not documented by PHP * * @param env * @param curl */ public static StringValue curl_multi_getcontent(Env env, Value curl) { throw new UnimplementedException("curl_multi_getcontent"); } /** * XXX: not documented by PHP * * @param env * @param curls */ public static ArrayValue curl_multi_info_read(Env env, Value curls) { throw new UnimplementedException("curl_multi_info_read"); } /** * XXX: not documented by PHP * * @param env */ public static Value curl_multi_init(Env env) { throw new UnimplementedException("curl_multi_init"); } /** * XXX: not documented by PHP * * @param env * @param curls * @param curl */ public static LongValue curl_multi_remove_handle(Env env, Value curls, Value curl) { throw new UnimplementedException("curl_multi_remove_handle"); } /** * XXX: not documented by PHP * * @param env * @param curls * @param timeout */ public static LongValue curl_multi_select(Env env, Value curls, @Optional Value timeout) { throw new UnimplementedException("curl_multi_select"); } /** * Sets an array of options. * * @param env * @param curl * @param options */ public static BooleanValue curl_setopt_array(Env env, @NotNull CurlResource curl, ArrayValue options) { if (curl == null) return BooleanValue.FALSE; for (Map.Entry<Value,Value> entry: options.entrySet()) { if (setOption(env, curl, entry.getKey().toInt(), entry.getValue())) return BooleanValue.FALSE; } return BooleanValue.TRUE; } /** * Sets a cURL option. * * @param env * @param curl * @param option * @param value * * @return true if successful */ public static BooleanValue curl_setopt(Env env, @NotNull CurlResource curl, int option, Value value) { if (curl == null) return BooleanValue.FALSE; if (setOption(env, curl, option, value)) return BooleanValue.TRUE; else return BooleanValue.FALSE; } private static boolean setOption(Env env, CurlResource curl, int option, Value value) { int i; switch (option) { // // booleans // case CURLOPT_AUTOREFERER: //XXX break; case CURLOPT_COOKIESESSION: curl.setCookie(null); break; case CURLOPT_FAILONERROR: curl.setFailOnError(value.toBoolean()); break; case CURLOPT_FOLLOWLOCATION:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -