Как вставить запрос POST в UIWebView

Конечно, это будет сделано.

#rainbow

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,2*np.pi)
ax= plt.subplot(1,1,1)
ax.plot(np.sin(x))
ax.plot(np.cos(x))

rainbow = ax._get_lines.color_cycle
print rainbow
for i, color in enumerate(rainbow):
    if i<10:
        print color,

Дает:


r c m y k b g r c m

Вот функция itertools, которую matplotlib использует itertools.cycle

Редактировать: Спасибо за комментарий, кажется, что копировать итератор невозможно. Идея состояла бы в том, чтобы сбрасывать полный цикл и отслеживать, какое значение вы используете, позвольте мне вернуться к этому.

Edit2: Allright, это даст вам следующий цвет и сделает новый итератор, который ведет себя так, как будто следующий не был вызван. Это не сохраняет порядок окраски, просто следующее значение цвета, я оставляю это для вас.

Это дает следующий вывод: обратите внимание, что крутизна графика соответствует индексу, например, первый g является самым нижним граф и т. д.

#rainbow

import matplotlib.pyplot as plt
import numpy as np
import collections
import itertools

x = np.linspace(0,2*np.pi)
ax= plt.subplot(1,1,1)


def create_rainbow():
    rainbow = [ax._get_lines.color_cycle.next()]
    while True:
        nextval = ax._get_lines.color_cycle.next()
        if nextval not in rainbow:
            rainbow.append(nextval)
        else:
            return rainbow

def next_color(axis_handle=ax):
    rainbow = create_rainbow()
    double_rainbow = collections.deque(rainbow)
    nextval = ax._get_lines.color_cycle.next()
    double_rainbow.rotate(-1)
    return nextval, itertools.cycle(double_rainbow)


for i in range(1,10):
    nextval, ax._get_lines.color_cycle = next_color(ax)
    print "Next color is: ", nextval
    ax.plot(i*(x))


plt.savefig("SO_rotate_color.png")
plt.show()

Консоль

Next color is:  g
Next color is:  c
Next color is:  y
Next color is:  b
Next color is:  r
Next color is:  m
Next color is:  k
Next color is:  g
Next color is:  c

Rotate color [/g1]

13
задан Community 23 May 2017 в 12:13
поделиться

3 ответа

[

] Вы можете использовать NSMutableURLRequest, установить метод HTTP в POST, а затем загрузить его в свой UIWebView с помощью -loadRequest.[

].
13
ответ дан 1 December 2019 в 19:50
поделиться

Можно использовать что-то вроде ASIHTTPRequest, чтобы сделать POST-запрос ( с возможностью делать это асинхронно), а затем загрузить строку/данные ответа в UIWebView. Посмотрите на эту страницу под заголовком Отправка данных с POST или PUT запросами, а затем посмотрите на Создание асинхронного запроса вверху для получения информации о том, как работать со строкой/данными ответа.

Надеюсь, это поможет, простите, если я неправильно понял ваш вопрос.

.
3
ответ дан 1 December 2019 в 19:50
поделиться

Используя loadHTMLString, загрузите страницу в UIWebView, которая имеет скрытую, предварительно заполненную форму, затем заставьте эту страницу выполнить Javascript форму[0].submit() при загрузке.

EDIT: Сначала вы собираете входные данные в переменные. Затем вы сочиняете HTML так:

NSMutableString *s = [NSMutableString stringWithCapacity:0];
[s appendString: @"<html><body onload=\"document.forms[0].submit()\">"
 "<form method=\"post\" action=\"http://someplace.com/\">"
 "<input type=\"hidden\" name=\"param1\">"];
[s appendString: Param1Value]; //It's your variable
[s appendString: @"</input></form></body></html>"];

Затем добавляете его в WebView:

[myWebView loadHTMLString:s baseURL:nil];

Он заставит WebView загрузить форму, затем немедленно отправить ее, таким образом выполняя POST-запрос на someplace.com (ваш URL будет меняться). Результат появится в WebView.

Специфика формы зависит от вас...

.
2
ответ дан 1 December 2019 в 19:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: