135 строки
5.6 KiB
Java
135 строки
5.6 KiB
Java
/**
|
|
* The curl class is a JNI wrapper for libcurl. Please bear with me, I'm no
|
|
* true java dude (yet). Improve what you think is bad and send me the
|
|
* updates!
|
|
* daniel@haxx.se
|
|
*
|
|
* This is meant as a raw, crude and low-level interface to libcurl. If you
|
|
* want fancy stuff, build upon this.
|
|
*/
|
|
|
|
public class CurlGlue
|
|
{
|
|
// start of imported generated list, make a new list with
|
|
// define2java.pl on demand
|
|
public static final int CURLOPT_NOTHING = 0;
|
|
public static final int CURLOPT_FILE = 10001;
|
|
public static final int CURLOPT_URL = 10002;
|
|
public static final int CURLOPT_PORT = 3;
|
|
public static final int CURLOPT_PROXY = 10004;
|
|
public static final int CURLOPT_USERPWD = 10005;
|
|
public static final int CURLOPT_PROXYUSERPWD = 10006;
|
|
public static final int CURLOPT_RANGE = 10007;
|
|
public static final int CURLOPT_INFILE = 10009;
|
|
public static final int CURLOPT_ERRORBUFFER = 10010;
|
|
public static final int CURLOPT_WRITEFUNCTION = 20011;
|
|
public static final int CURLOPT_READFUNCTION = 20012;
|
|
public static final int CURLOPT_TIMEOUT = 13;
|
|
public static final int CURLOPT_INFILESIZE = 14;
|
|
public static final int CURLOPT_POSTFIELDS = 10015;
|
|
public static final int CURLOPT_REFERER = 10016;
|
|
public static final int CURLOPT_FTPPORT = 10017;
|
|
public static final int CURLOPT_USERAGENT = 10018;
|
|
public static final int CURLOPT_LOW_SPEED_LIMIT = 19;
|
|
public static final int CURLOPT_LOW_SPEED_TIME = 20;
|
|
public static final int CURLOPT_RESUME_FROM = 21;
|
|
public static final int CURLOPT_COOKIE = 10022;
|
|
public static final int CURLOPT_HTTPHEADER = 10023;
|
|
public static final int CURLOPT_HTTPPOST = 10024;
|
|
public static final int CURLOPT_SSLCERT = 10025;
|
|
public static final int CURLOPT_SSLCERTPASSWD = 10026;
|
|
public static final int CURLOPT_CRLF = 27;
|
|
public static final int CURLOPT_QUOTE = 10028;
|
|
public static final int CURLOPT_WRITEHEADER = 10029;
|
|
public static final int CURLOPT_COOKIEFILE = 10031;
|
|
public static final int CURLOPT_SSLVERSION = 32;
|
|
public static final int CURLOPT_TIMECONDITION = 33;
|
|
public static final int CURLOPT_TIMEVALUE = 34;
|
|
public static final int CURLOPT_HTTPREQUEST = 10035;
|
|
public static final int CURLOPT_CUSTOMREQUEST = 10036;
|
|
public static final int CURLOPT_STDERR = 10037;
|
|
public static final int CURLOPT_POSTQUOTE = 10039;
|
|
public static final int CURLOPT_WRITEINFO = 10040;
|
|
public static final int CURLOPT_VERBOSE = 41;
|
|
public static final int CURLOPT_HEADER = 42;
|
|
public static final int CURLOPT_NOPROGRESS = 43;
|
|
public static final int CURLOPT_NOBODY = 44;
|
|
public static final int CURLOPT_FAILONERROR = 45;
|
|
public static final int CURLOPT_UPLOAD = 46;
|
|
public static final int CURLOPT_POST = 47;
|
|
public static final int CURLOPT_FTPLISTONLY = 48;
|
|
public static final int CURLOPT_FTPAPPEND = 50;
|
|
public static final int CURLOPT_NETRC = 51;
|
|
public static final int CURLOPT_FOLLOWLOCATION = 52;
|
|
public static final int CURLOPT_FTPASCII = 53;
|
|
public static final int CURLOPT_TRANSFERTEXT = 53;
|
|
public static final int CURLOPT_PUT = 54;
|
|
public static final int CURLOPT_MUTE = 55;
|
|
public static final int CURLOPT_PROGRESSFUNCTION = 20056;
|
|
public static final int CURLOPT_PROGRESSDATA = 10057;
|
|
public static final int CURLOPT_AUTOREFERER = 58;
|
|
public static final int CURLOPT_PROXYPORT = 59;
|
|
public static final int CURLOPT_POSTFIELDSIZE = 60;
|
|
public static final int CURLOPT_HTTPPROXYTUNNEL = 61;
|
|
public static final int CURLOPT_INTERFACE = 10062;
|
|
public static final int CURLOPT_KRB4LEVEL = 10063;
|
|
public static final int CURLOPT_SSL_VERIFYPEER = 64;
|
|
public static final int CURLOPT_CAINFO = 10065;
|
|
public static final int CURLOPT_PASSWDFUNCTION = 20066;
|
|
public static final int CURLOPT_PASSWDDATA = 10067;
|
|
public static final int CURLOPT_MAXREDIRS = 68;
|
|
public static final int CURLOPT_FILETIME = 10069;
|
|
public static final int CURLOPT_TELNETOPTIONS = 10070;
|
|
public static final int CURLOPT_MAXCONNECTS = 71;
|
|
public static final int CURLOPT_CLOSEPOLICY = 72;
|
|
public static final int CURLOPT_CLOSEFUNCTION = 20073;
|
|
public static final int CURLOPT_FRESH_CONNECT = 74;
|
|
public static final int CURLOPT_FORBID_REUSE = 75;
|
|
public static final int CURLOPT_RANDOM_FILE = 10076;
|
|
public static final int CURLOPT_EGDSOCKET = 10077;
|
|
public static final int CURLOPT_CONNECTTIMEOUT = 78;
|
|
public static final int CURLOPT_HEADERFUNCTION = 20079;
|
|
// end of generated list
|
|
|
|
public CurlGlue() {
|
|
javacurl_handle = jni_init();
|
|
}
|
|
|
|
public void finalize() {
|
|
jni_cleanup(javacurl_handle);
|
|
}
|
|
|
|
private int javacurl_handle;
|
|
|
|
/* constructor and destructor for the libcurl handle */
|
|
private native int jni_init();
|
|
private native void jni_cleanup(int javacurl_handle);
|
|
private native synchronized int jni_perform(int javacurl_handle);
|
|
|
|
// Instead of varargs, we have different functions for each
|
|
// kind of type setopt() can take
|
|
private native int jni_setopt(int libcurl, int option, String value);
|
|
private native int jni_setopt(int libcurl, int option, int value);
|
|
private native int jni_setopt(int libcurl, int option, CurlWrite value);
|
|
|
|
public native int getinfo();
|
|
|
|
public int perform() {
|
|
return jni_perform(javacurl_handle);
|
|
}
|
|
public int setopt(int option, int value) {
|
|
return jni_setopt(javacurl_handle, option, value);
|
|
}
|
|
public int setopt(int option, String value) {
|
|
return jni_setopt(javacurl_handle, option, value);
|
|
}
|
|
public int setopt(int option, CurlWrite value) {
|
|
return jni_setopt(javacurl_handle, option, value);
|
|
}
|
|
|
|
static {
|
|
System.loadLibrary("javacurl");
|
|
}
|
|
|
|
}
|