¿Cómo usar la forma JSL de datos WEB "POST"?Después de que aprendí a usar JMP para descargar datos de páginas web, a mi madre le gusta usar JMP para descargar datos de páginas web ahora, pero es más difícil procesar la página web de POST.
Obtenga ayuda de expertos: cómo descargar datos usando JSL de la siguiente manera:

POST http://listxbrl.sse.com.cn/companyInfo/showBalance.do HTTP/1.1
Host: listxbrl.sse.com.cn
Connection: keep-alive
Content-Length: 54
Accept: */*
Origin: http://listxbrl.sse.com.cn
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://listxbrl.sse.com.cn/companyInfo/toCompanyInfo.do?stock_id=600007&report_period_id=5000
report_year=2018&stock_id=600007&report_period_id=5000
Puedo hacerlo con VBA.
¡Gracias!
Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?Gracias por la ayuda de los expertos, por lo que aprendí muchas habilidades. ¡Gracias!Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?Usando el ejemplo en el hilo, querrías algo como:
query = Associative Array();
query["report_year"] = 2018;
query["stock_id"] = 600007;
query["period_id"] = 5000;
request = HTTP Request(
Url( "http://listxbrl.sse.com.cn/companyInfo/showBalance.do" ),
Method( "POST" ),
Form( Fields(query) )
);
request << Send;
El mensaje del formulario ha estado ahí desde el principio.
Tiene subpartes de Campos y Archivos. Ambos son arreglos asociativos.
En el caso de "Campos", se trata de pares de nombre/valor donde el valor puede ser un carácter o una lista de caracteres.
En el caso de "Archivos", se trata de pares de nombre/valor donde el valor puede ser un nombre de archivo o una lista de nombres de archivo.
Si solo se utilizan "Campos", el encabezado de la solicitud se establece automáticamente en application/x-www-form-urlencoded
Si se utilizan "Campos" y "Archivos" (o simplemente "Archivos"), el encabezado de la solicitud se establece automáticamente en multipart/form-data.
También actualizaré el hilo con esta información.
Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?perfecto.
Gracias Ryan_Gilmore!

Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?Estas líneas de código,
query = Associative Array();
query["report_year"] = 2018;
query["stock_id"] = 600007;
query["report_period_id"] = 5000;
se utilizan para construir la lista de parámetros de consulta en la URL, por ejemplo
informe_año=2018&stock_id=600007&report_period_id=5000
En el código original que proporcioné, el código tenía
query["period_id"] = 5000;
lo que habría dado una lista de parámetros de consulta incorrecta de
informe_año=2018&stock_id=600007&period_id=5000
Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?Acabo de intentar usar el VBA original, continuar con ID 5000 y aún poder descargar.
"informe_año=2018&stock_id=600007&report_period_id=5000"
Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?VEO.

Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?Veo que uno de los parámetros es incorrecto. El código que sugerí tenía "period_id" en lugar de "report_period_id" como se muestra en su publicación original. Es posible que esté contribuyendo al mensaje "Error interno del servidor 500".
Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?obtener "DATOS" de theta:
" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\ !"> http://www.w3.org/1999/xhtml\ !"> <meta http-equiv="\!"Content-Type\!"" content="\!"text/html;" juego="" de="" caracteres="utf-8\!"" />
……
"Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?Mi conocimiento del enfoque JMP es limitado.
Solo puedo imitar. Todavía no hay resultados.

Gracias Ryan_Gilmore!
Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?Una vez creada la solicitud. luego debe emitir el comando Enviar, por ejemplo
data = request << Send;
If( request << IsSuccess,
json_data = Parse JSON( data );
);Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?1 Gracias, maria g !
Este enfoque aún no ha funcionado.
Parece que esta forma de método POST, la aplicación JMP aún no existe.

Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?Creo que lo siguiente podría estar cerca de lo que necesita,
request_headers = Associative Array();
request_headers["Content-type"] = "application/x-www-form-urlencoded";
query = Associative Array();
query["report_year"] = 2018;
query["stock_id"] = 600007;
query["period_id"] = 5000;
request = HTTP Request(
Url( "http://listxbrl.sse.com.cn/companyInfo/showBalance.do" ),
Method( "POST" ),
Headers( request_headers ),
QueryString( query )
);
Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?A continuación se muestra el código VBA, se puede descargar para obtener los datos de la página.
Pero todavía no he podido convertirlo en código JSL.

Por favor, dame ayuda. ¡Muchas gracias!
VBA:
Sub Main()
Dim strText As String
With CreateObject("MSXML2.XMLHTTP")
.Open "POST", "http://listxbrl.sse.com.cn/companyInfo/showBalance.do", False
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.Send "report_year=2018&stock_id=600007&report_period_id=5000"
strText = .responsetext
Debug.Print strText
End With
Cells(1, 1) = strText
End Sub
Re: ¿Cómo usar el formulario JSL de datos WEB "POST"?busqué-
Método ("POST")
en el archivo de ayuda, pero no encontró un código similar.