Cómo utilizar la interfaz API de Baidu Cloud
Inicialmente aprendí sobre el uso de la interfaz API de Baidu Cloud Disk Document, quería crear una aplicación de Android en línea; Los documentos se almacenan en Baidu Cloud Disk.
Los pasos principales son:
1. Registre una cuenta de Baidu
2. Inicie sesión en el Centro de desarrolladores de Baidu
3. Crear un teléfono móvil Aplicar y obtener la (clave API) correspondiente
4. Abrir permisos API de pcs
5. Obtener el token ACCESS_ (código de verificación)
6. Aplicación de desarrollo
Nota:
Abre la aplicación móvil y obtén la clave
Al obtener el token, uso el método de Android para obtenerlo
p>
A través de los ejemplos de API correspondientes que escribí, descubrí que en realidad solo hay dos situaciones: una es enviar datos en el modo de adquisición y la otra es enviar los datos en el modo de publicación
La primera situación es obtener datos, la otra es enviar datos en el modo de adquisición y la segunda es enviar los datos en el modo de publicación. Enviar datos por método de publicación
1. Enviar datos por método de obtención, tomemos como ejemplo la obtención de información del disco en la nube:
Antes de obtener información del disco en la nube, necesitamos saber qué datos necesita prepararse:
Parámetros de solicitud:
url: identifica la ruta de la URL a la que queremos acceder, el valor es una pregunta fija ""
método : identifica la URL que queremos solicitar. La ruta a la URL de la información del disco en la nube. Solicitamos información sobre discos en la nube. El valor se fija en "info"
access_token: token de acceso. Este valor es el valor que aplicamos nosotros mismos
Parámetros de retorno recibidos:
cuota: la capacidad total de la unidad en la nube
utilizada: la capacidad utilizada de la Capacidad de la unidad de nube
request_id: indicación de solicitud, inútil
request_id: indicación de solicitud, inútil
request_id: indicación de solicitud, inútil
request_id : La solicitud es inútil, inútil.
El formato de cadena json devuelto es el siguiente: {"quota":123794882560, "used":83573494688, "request_id":2853739529}
Cuando hago esto, usas Gson Las herramientas convierten cadenas json en clases de entidad correspondientes.
El código es el siguiente:
[html] /**
* @param URLConnection conn Obtenga el StringBuffer a través de get
* @return
* /
private StringBuffer getJsonString(URLConnection conn) {
InputStreamReader isr = null
BufferedReader br = null;
StringBuffer sb = null;
intente {
isr = new InputStreamReader(conn. getInputStream().getInputStream(), "gb2312");
br = nuevo BufferedReader( isr);
Línea de cadena = nulo;
sb = nuevo StringBuffer();
while ((line = br.readLine() ) != null ) {
sb.append(line);
sb.append("/r\n");
}
}
} captura (UnsupportedEncodingException e) {
e. printStackTrace();
} captura (IOException e) {
e .printStackTrace();
}finalmente{
prueba {
if (isr!=null)
isr .close() ;
} catch (IOException e) {
System.out.println("El cierre de la transmisión es una excepción");
e. printStackTrace();
}
}
Volver a alguien;
}
/**
* @return
* @throws Exception
* Obtener información sobre el espacio en la nube
*/
public CloudInfo getCloudInfo() arroja una excepción {
URL u = nueva URL ("?method=info&access_token=valor del token que solicitó";
URLConnection conn = u.openConnection( ); // abrir enlace web
// Obtener información sobre la nube del usuario
String cloudJson = this.getJsonString(conn();
// Analizar en). un objeto.
println("CloudInfo:"+cloudInfo);
Devuelve cloudInfo;
}
/**
* @param Conector URLConnection Obtenga StringBuffer a través de get
* @return
*/
private StringBuffer getJsonString(URLConnection conn) {
InputStreamReader isr = null;
BufferedReader br = null;
StringBuffer sb = null;
prueba {
isr = new InputStreamReader(conn. getInputStream() .getInputStream(), "gb2312");
br = new BufferedReader(isr);
String line = null;
sb = new StringBuffer() ;
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append(" /r\n");
}
}
} catch (UnsupportedEncodingException e) {
e. printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finalmente{
prueba {
if (isr!=null)
isr .close();
} catch (IOException e) {
System.out.println( "El cierre de la transmisión es una excepción");
e.printStackTrace();
}
}
Devolver sb; p> p>
}
/**
* @return
* @throws Exception
* Obtener información sobre el espacio en la nube
*/
public CloudInfo getCloudInfo() arroja una excepción {
URL u = nueva URL ("?method=info&access_token=valor del token usted solicitó";
URLConnection conn = u. openConnection();//CloudInfo().
out.println("CloudInfo: "+cloudInfo);
return cloudInfo;
}
[html] paquete com.entity;
import java.lang.reflect.Type;
/**
* @author ydcun Obtener información del espacio en la nube Por ejemplo:
* {" cuota " :123794882560, cuota de espacio, la unidad es bytes
* "used":83573494688, tamaño del espacio usado, la unidad es bytes.
* "request_id":2853739529}
*/
clase pública CloudInfo{
privada Cuota doble;
privado Doble usado;
privado Doble request_id;
/**
* @return la cuota Cuota de espacio en bytes
*/
public Double getQuota() {
cuota de retorno;
.p> }
/**
* @param cuota La cuota de espacio que se establecerá, en bytes
*/
public void setQuota(Doble cuota) {
cuota. = cuota;
}
/**
* @return el tamaño del espacio utilizado (en bytes)
*/
public Double getused() {
retorno usado
}
/**
/**
* @param used El número de bytes utilizados para establecer el tamaño del espacio utilizado
*/
public void setused(Doble uso) {
this.used = usado;
}
/**
* @ return request_id
*/
public Double getRequest_id() {
return request_id;
}
/**
* @param request_id El request_id se establecerá
*/
public void setRequest_id(Double request_id) {
this.request_id = request_id;
}
@ Override
public String toString() {
return new StringBuffer().append("Capacidad de espacio:").append(" M; ya usado :"). append (this.getused()/1024/1024). append ("M;"). toString();
}
}
paquete com.entity;
import java.lang.reflect.type;
/**
* @author ydcun Obtenga la información del espacio en la nube, por ejemplo:
* {"quota":123794882560, cuota de espacio, la unidad es bytes
* "used":83573494688, tamaño del espacio utilizado, la unidad es palabra Festival.
* "request_id":2853739529}
*/
clase pública CloudInfo{
privada Cuota doble;
privado Doble usado;
privado Doble request_id;
/**
* @return la cuota de espacio (unidad: bytes)
*/
public Double getQuota() {
cuota de retorno;
.p> }
/**
* @param cuota La cuota de espacio que se establecerá, en bytes
*/
public void setQuota(Cuota doble) {
this.quota = cuota;
}
/**
* @return el tamaño del espacio utilizado (en bytes)
*/
public Double getused() {
retorno usado
}
/**
/**
* @param used El número de bytes utilizados para establecer el tamaño del espacio utilizado
*/
public void setused (Doble uso) {
this.used = usado;
}
/**
* @ return request_id
*/
public Doble getRequest_id() {
return request_id;
}
/**
* @ param request_id El request_id que se establecerá
*/
public void setRequest_id(Double request_id) {
this.request_id = request_id;
}
@ Override
public String toString() {
return new StringBuffer(). append("Capacidad de espacio:") .append("M ; ya usado:"). append("M;"). toString();
}
}
2.I Vamos a cargar un solo archivo como ejemplo:
De manera similar, echemos un vistazo a los parámetros que deben configurarse para cargar archivos:
Respecto a la carga de archivos, lo primero que debemos saber es que Es necesario configurar los parámetros. Configuración de parámetros:
Parámetros de solicitud:
url: El valor de la ruta que identifica la URL a la que queremos acceder se fija en ""
Método: Identifica que están solicitando información sobre la nube El valor de información de la unidad está fijo para "cargar"
access_token: el valor del token de acceso es el valor que aplicamos para nosotros mismos
Ruta: la ruta que queremos subirlo a la unidad en la nube. Esta es la ruta que queremos cargar en la unidad de la nube.
Por ejemplo, /apps/myBaiduCloud/ myBaiduCloud es el nombre de nuestra aplicación (cuando obtenga koten, generará automáticamente una carpeta con el nombre de su aplicación)
Archivo: Esto es lo que queremos cargar Archivo (necesita para cargar)
ondup: parámetro opcional, utilizado para determinar el método de procesamiento al cambiar el nombre del archivo, consulte la API
Recibir parámetros de retorno:
El valor de retorno también es una cadena json,
ruta: la ruta completa donde se guardará el archivo que subimos
tamaño: el tamaño del archivo en bytes
ctime /mtime: la hora de creación del archivo. mtime: la hora en la que se creó y modificó el archivo
Otros parámetros se describen en la API
{
"ruta" : "/apps/album/ README.md"
"tamaño" : 372121,
"ctime" : 1234567890,
"mtime" : 1234567890,
"md5" : "cb123afcc12453543ef",
"fs_id" : 12345,
"request_id" : 4043312669
}
Cuando Lo estaba haciendo, también está encapsulado en clases de entidad. No entraré en detalles aquí como se indicó anteriormente. Centrémonos en cómo enviar archivos. El método de envío es el siguiente:
[java] /*. *
* @param ruta ruta de almacenamiento en la nube
* @param nombre del archivo a cargar
* @return
* @throws Excepción
*/
public FileBase uploadFile(Ruta de cadena, archivo de archivo) arroja una excepción{
//imitar archivo
String fileName= "README.md";
file = new File(fileName);
path="%2fapps%2fmybaidu%2f" // Usé el código fuente codificado en URL: -> "/apps/mybaidu /
/ "
// Reúna los parámetros que deben pasarse a través de la URL con la URL
String u = ""+ruta+archivo.getName( )+"&method=upload&access_token=su propio valor de token solicitado"
PostMethod filePost = new PostMethod(u);
//publicar envío parámetros
Part [] parts = {new FilePart(fileName,file)};
//Establece parámetros multimedia, su función es similar a la del formulario enctype="multipart/form- datos"
archivoPost.
setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams()));
Clientes HttpClient = new HttpClient();
//Código de respuesta
int status = client.executeMethod(filePost);
System.out.println("Acceso exitoso al HttpClient"). println("Subido correctamente "+ ruta+nombre de archivo);
BufferedReader buReader = new BufferedReader(new InputStreamReader(filePost.getResponseBodyAsStream(), "utf-8"));< /p> p>
StringBuffer sb = new StringBuffer();
Línea de cadena;
while ((line=buReader.readLine()! = null){
sb.append(line);
}
buReader.close();
// Analizar en objeto
Gson gson = new Gson();
FileBase cloudInfo = gson.fromJson(sb.toString(), FileBase.class);
Gson gson = new Gson();
FileBase cloudInfo = gson.fromJson(sb.toString(), FileBase.class);