Wolfram Language

Interfaces Cloud et Web

Contrôlez la réponse du Web pour le suivi de la station spatiale

Vous pouvez contrôler les caractéristiques exactes de la réponse HTTP d'un objet cloud en renvoyant une HTTPResponse. Vous pouvez gérer les conditions d'erreur avec HTTPErrorResponse.

Définissez une fonction qui trouve la ville la plus proche de la position actuelle de la Station spatiale internationale. La station spatiale se déplace rapidement, de sorte que les résultats changent rapidement.

Afficher l'entrée complète de Wolfram Language
In[1]:=
Click for copyable input
issLocationDisplay[] := Module[{pos, posline, country, city, distance}, {pos, posline} = SatelliteData[ Entity["Satellite", "25544"], {"Position", "PositionLine"}]; country = First[GeoNearest["Country", pos]]; distance = Round[GeoDistance[pos, country], 0.1]; Panel@Column[{Row[{"ISS Position: ", Style[If[distance <= Quantity[0., "Miles"], "over " <> First[GeoNearest["City", pos]]["Name"] <> ", " <> country["Name"], ToString[ Row[{"over the open sea ", distance, " from ", country["Name"]}]]], Darker[Blue]]}, BaseStyle -> Directive["FontFamily" -> "SansSerif", RGBColor["#497CA4"], Larger, Bold]], GeoGraphics[{Gray, Thickness[.005], Arrowheads[{{0.05, 0.4}, {0.05, 0.13}}], Arrow @@ posline, Red, PointSize[.01], Point[pos], Opacity[.1], Black, GeoVisibleRegion[pos]}, GeoCenter -> pos, GeoRange -> "World", ImageSize -> 600]}]]
In[2]:=
Click for copyable input
issLocationDisplay[]
Out[2]=

Déployez un objet cloud qui calcule le résultat à chaque fois, en utilisant HTTPResponse pour indiquer le type de contenu et pour spécifier un en-tête qui indique au navigateur de ne pas mettre en cache le résultat.

In[3]:=
Click for copyable input
obj = CloudDeploy[ Delayed[HTTPResponse[ ExportString[issLocationDisplay[], "PNG"], <| "ContentType" -> "image/png", "Headers" -> {"Cache-Control" -> "no-cache"}|>]], CloudObject["iss-location"], Permissions -> "Public"]
Out[3]=

Interdisez à certains utilisateurs d'utiliser l'objet cloud en renvoyant une HTTPErrorResponse.

In[4]:=
Click for copyable input
obj = CloudDeploy[Delayed[ If[MemberQ[{"badapple@example.com", "blackhat@example.com", "spammer@example.com"}, $WolframID], HTTPErrorResponse[403], HTTPResponse[ issLocationDisplay[], <| "Headers" -> {"Cache-Control" -> "no-cache"}|>] ]], CloudObject["iss-location"], Permissions -> "Public"]
Out[4]=

Exemples connexes

de en es ja ko pt-br ru zh