iOS Question HttpUtils

kohle

Active Member
Licensed User
Longtime User
Hi,
I need some help.

Under b4a it works and with b4i it gets an encoding error at Res = job.GetString



Dim job1 As HttpJob
job1.Initialize("job",Me)
job1.Download(http://www.rotasetrilhas.com/noticias/?p=906)
...
...
Sub JobDone (job As HttpJob)

If job.Success Then
Dim Res As String
Res = job.GetString
....
....



Web-Site starts with :

<html lang="pt-BR">
<head>
<meta charset="UTF-8" />



No error with : Job.GetString2("Windows-1252")

Log shows text, but special characters are wrong

and not shown in Webview : WebView1.LoadHtml(res)



What I do wrong ?
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
Please use [code]code here...[/code] tags when posting code.

The document itself is not encoded properly. See the x85 tokens:
SS-2016-03-31_08.25.21.png


You can use this sub to clean the string from the problematic characters (in this specific document):

B4X:
Private Sub CleanString(j As HttpJob) As String
   Dim b() As Byte = Bit.InputStreamToBytes(j.GetInputStream)
   For i = 0 To b.Length - 1
     If b(i) = 0x85 And b(i - 1) = Asc(">") Then
       b(i) = Asc(" ")
     End If
   Next
   Return BytesToString(b, 0, b.Length, "utf8")
End Sub
Dim s As String = CleanString(Job)

If it runs slow then clean the project (Ctrl + P) and it will be fast.
 
Upvote 0

kohle

Active Member
Licensed User
Longtime User
Ok. This works. But its not shown in the webview.(works in b4a)

What I do next :

B4X:
....
    pattern="<h1 class=" & QUOTE & "entry-title" & QUOTE & ">(.*\n)*</div>"
            Dim m As Matcher
              m = Regex.Matcher(pattern,Res)
            Do While m.Find
                h1=m.Match
                Log (m.Match)
            Loop
        Else
            h1=Res 
        End If   
         
       
        WebView1.LoadHtml( h1 )



in h1 is the following script :

B4X:
<h1 class="entry-title">Curso de Condução Fora de Estrada</h1>
                    <div class="entry-meta">
                        <span class="meta-prep meta-prep-author">Publicado em</span> <a href="http://www.rotasetrilhas.com/noticias/?p=906" title="00:19" rel="bookmark"><span class="entry-date">17/03/2016</span></a> <span class="meta-sep">por</span> <span class="author vcard"><a class="url fn n" href="http://www.rotasetrilhas.com/noticias/?author=1" title="Ver todos os posts de Fabio - Rotas e Trilhas">Fabio - Rotas e Trilhas</a></span>                    </div><!-- .entry-meta -->
                    <div class="entry-content">
                        <p>A Rotas e Trilhas oferece em <strong>09</strong> <strong>e 10</strong> <strong>de Abril de 2016</strong> mais uma edição do conceituado <strong>Curso de Condução Fora de Estrada</strong> para os amantes da aventura 4×4. Este curso é destinado para todos aqueles que gostam do fora de estrada, e desejam obter o máximo do seu veiculo com o máximo de segurança.  Desta vez em um final de semana em Cambará do Sul, voltado para uma programação familiar!</p>
<p>Para aqueles que querem fazer o curso, e ao mesmo tempo passar um final de semana com a família, chegou a oportunidade!</p>
<p>Saindo de Porto Alegre em comboio no sábado as 08:00, dia 09 de Abril, iremos até Cambará do Sul. Das 14:00 as 20:00, será realizada a aula teórica do curso. Enquanto isso, aqueles que levarem as <a href="http://rotasetrilhas.com/noticias/wp-content/uploads/2013/06/002.jpg"><img class=" size-full wp-image-472 alignright" src="http://rotasetrilhas.com/noticias/wp-content/uploads/2013/06/002.jpg" alt="002" width="150" height="84" /></a>famílias, as mesmas podem aproveitar a fazenda com passeios a cavalo, ou curtindo o local.<br />
No dia seguinte, domingo dia 10, das 09:00 as 13:00, faremos a aula prática, com obstáculos como barro, pedras, aclives, declives, agua, etc… encerrando a programação com um excelente almoço na fazenda.</p>
<p>Faça já a sua inscrição, são apenas 10 vagas!</p>
<p>O mesmo é voltado para fazer você se surpreender com o que o seu veiculo é capaz de fazer. Venha e aprenda técnicas para dirigir com segurança em diferentes tipos de terreno: terra, pedra, lama, água e muito mais.</p>
<p>Aprenda as respostas para as dúvidas mais comuns, como: O que é ângulo de ataque? Como usar o guincho com segurança? Qual o melhor pneu para cada tipo de terreno? O que é vão-livre? O que fazer para não atolar? E o que fazer se atolar? Como transpor obstáculos com segurança? Estas e muitas outras perguntas serão respondidas no curso.</p>
<p>Faça sua inscrição agora mesmo e comece já a desfrutar de todo o potencial que o seu veículo 4×4 pode lhe oferecer e sinta toda a emoção do fora de estrada.</p>
<p><strong>Requisitos obrigatórios:</strong> Veículo 4×4 em condições para a aula prática (ideal que a pessoa possua o veiculo, mas quem não tiver pode participar como ouvinte). Carteira de habilitação nacional dentro da validade</p>
<p><strong>Investimento: </strong>O investimento é de R$ 480,00 por aluno. <strong>A inscrição somente é garantida após a confirmação da inscrição via depósito. Entre em contato com a organização para informações. </strong>A inscrição inclui a participação no curso, e a hospedagem com refeições no Domingo (café e almoço do Domingo). Para pessoa adicional não participando do curso mas hospedada na mesma cabana o valor é de R$ 150,00 (inclui hospedagem e refeições do Domingo). Para crianças de 06 a 11 anos, o valor é R$ 80,00. E crianças até 05 anos não pagam.</p>
<p><strong>Inscrições</strong> <strong>e outras informações:<br />
</strong>Para inscrições, dúvidas ou outras informações, entre em contato conosco via e-mail <a>eventos@rotasetrilhas.com</a> ou pelo telefone (51) 9680-3713.</p>
                                            </div><!-- .entry-content -->
                    <div class="entry-utility">
                        Esta entrada foi publicada em <a href="http://www.rotasetrilhas.com/noticias/?cat=1" rel="category">Noticias</a>. Adicione o <a href="http://www.rotasetrilhas.com/noticias/?p=906" title= (message truncated)...
 
Upvote 0

kohle

Active Member
Licensed User
Longtime User
I solved the problem.

I have the webview in the layout, but in the source I had :
WebView1.Initialize("WebView1_Click")

When the webview is in the layout it should not be Initialized .

But no error message.
 
Upvote 0
Top