Come utilizzare il modulo JSL dei dati WEB "POST"?Dopo aver imparato a utilizzare JMP per scaricare i dati delle pagine Web, a mia madre piace utilizzare JMP per scaricare i dati delle pagine Web ora, ma è più difficile elaborare la pagina Web di POST.
Ottenere l'aiuto di un esperto: come scaricare i dati utilizzando JSL nel modo seguente:

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
Posso farlo con VBA.
Grazie!
Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?Grazie per l'aiuto degli esperti, così ho imparato molte abilità. Grazie!Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?Usando l'esempio nel thread, vorresti qualcosa del tipo:
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;
Il messaggio del modulo è stato lì fin dall'inizio.
Ha sottoparti Campi e File. Entrambi sono array associativi.
Nel caso "Campi" si tratta di coppie nome/valore in cui il valore può essere un carattere o un elenco di caratteri.
Nel caso "File" si tratta di coppie nome/valore in cui il valore può essere il nome del file o un elenco di nomi di file.
Se viene utilizzato solo "Fields", l'intestazione della richiesta viene impostata automaticamente su application/x-www-form-urlencoded
Se vengono utilizzati "Fields" e "Files" (o solo "Files"), l'intestazione della richiesta viene automaticamente impostata su multipart/form-data.
Aggiornerò anche il thread con queste informazioni.
Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?perfetto.
Grazie Ryan_Gilmore!

Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?Queste righe di codice,
query = Associative Array();
query["report_year"] = 2018;
query["stock_id"] = 600007;
query["report_period_id"] = 5000;
vengono utilizzati per costruire l'elenco dei parametri di ricerca nell'URL, ad es
report_year=2018&stock_id=600007&report_period_id=5000
Nel codice originale che ho fornito, il codice aveva
query["period_id"] = 5000;
che avrebbe fornito un elenco di parametri di query errato di
report_year=2018&stock_id=600007&period_id=5000
Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?Ho appena provato a utilizzare il VBA originale, continuando con l'ID 5000 e potendo ancora scaricare.
"report_year=2018&stock_id=600007&report_period_id=5000"
Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?VEDO.

Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?Noto che uno dei parametri non è corretto. Il codice che ho suggerito aveva "period_id" anziché "report_period_id" come mostrato nel tuo post originale. È possibile che ciò stia contribuendo al messaggio "500 Internal Server Error".
Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?ottenere "DATI" di 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;" charset="utf-8\!"" />
……
"Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?La mia conoscenza dell'approccio JMP è limitata.
Posso solo imitare. Ancora nessun risultato.

Grazie Ryan_Gilmore!
Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?Una volta creata la richiesta. è quindi necessario emettere il comando Invia, ad es
data = request << Send;
If( request << IsSuccess,
json_data = Parse JSON( data );
);Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?Grazie Ryan_Gilmore !
Questo approccio non ha ancora funzionato.
Sembra che questa forma di metodo POST, l'applicazione JMP non sia ancora.

Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?Penso che quanto segue potrebbe essere vicino a ciò di cui hai bisogno,
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 )
);
Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?Di seguito è riportato il codice VBA, può essere scaricato per ottenere i dati della pagina.
Ma non sono ancora riuscito a convertirlo in codice JSL.

Per favore dammi aiuto. Grazie mille!
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
Ri: Come utilizzare il modulo JSL dei dati WEB "POST"?ho cercato-
Metodo("POST")
nel file della guida 、ma non ho trovato nessun codice simile.