Bonjour, j'utilise un web service afin d'envoyer un fichier, juste avant, je dois m'identifier à l'aide du WSE Security usernameToken, le problème que j'ai, c'est que " l'entête de sécurité est incorrecte", d'après ce que j'ai compris, mon soucis vient du fait que mon fichier app.config n'est pas formaté comme il le devrait, le mien se présente ainsi:
2 services sont mis en place, je me sers du 1er uniquement, voici les liens ainsi que les descriptions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 <?xml version="1.0"?> <configuration> <configSections> </configSections> <system.diagnostics> <sources> <!-- Cette section définit la configuration de l'enregistrement dans le fichier journal de My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> <!-- Supprimez les marques de commentaire dans la section suivante pour écrire dans le journal des événements de l'application --> <!--<add name="EventLog"/>--> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="Information"/> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> <!-- Supprimez les marques de commentaire dans la section suivante et remplacez APPLICATION_NAME par le nom de votre application à écrire dans le journal des événements de l'application --> <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> --> </sharedListeners> </system.diagnostics> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> <system.serviceModel> <bindings> <basicHttpBinding> <binding name="BillServicePortBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="Transport"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> <client> <endpoint address="https://www.sunat.gob.pe:443/ol-ti-itcpgem/billService" binding="basicHttpBinding" bindingConfiguration="BillServicePortBinding" contract="Production.billService" name="BillServicePort" /> </client> </system.serviceModel> </configuration>
Pour l'envoi en production : https://www.sunat.gob.pe/ol-ti-itcpgem/billService?wsdl
Pour l'envoi par homologation : https://www.sunat.gob.pe/ol-ti-itcpg...llService?wsdl
Et voici mon code VB:
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Dim file As String = "MonFichierAEnvoyer.zip" Dim userName As String = "IdIdentification" Dim pwd As String = "PWDIdentification" Dim local_filereceived As String = "R-" & file Dim zip As New ICSharpCode.SharpZipLib.Zip.FastZip System.Net.ServicePointManager.UseNagleAlgorithm = True System.Net.ServicePointManager.Expect100Continue = False System.Net.ServicePointManager.CheckCertificateRevocationList = True Try Dim data As Byte() = System.IO.File.ReadAllBytes(file) Dim ws As New Production.billServiceClient Dim Retour As Byte() ws.ClientCredentials.CreateSecurityTokenManager() ws.ClientCredentials.UserName.UserName = userName ws.ClientCredentials.UserName.Password = pwd ws.Open() 'envoi du fichier ZIP à la SUNAT Retour = ws.sendBill(local_filereceived, data) 'la réponse System.IO.File.WriteAllBytes(local_filereceived, Retour) 'décompresser zip.ExtractZip(local_filereceived, ".", "") 'supprimer les fichiers ZIP ainsi eus System.IO.File.Delete(local_filereceived) System.IO.File.Delete(local_filereceived) Catch ex As Exception MsgBox(ex.Message) End Try
Partager