• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 网络管理开发常见问题
2
3## http网络请求中extraData支持的数据格式有哪些
4
5适用于:OpenHarmony 3.2 Beta API 9
6
7**解决措施**
8
9extraData代表发送请求的额外数据,支持如下数据:
10
11-   当HTTP请求为POST、PUT方法时,此字段为HTTP请求的content。
12-   当HTTP请求为GET、OPTIONS、DELETE、TRACE、CONNECT方法时,此字段为HTTP请求的参数补充,参数内容会拼接到URL中进行发送。
13-   开发者传入string对象,开发者需要自行编码,将编码后的string传入。
14
15## http请求的错误码28是什么意思
16
17适用于:OpenHarmony 3.2 Beta API 9
18
19**问题现象**
20
21发起http请求后报错,错误码28。
22
23**解决措施**
24
25错误码28代表CURLE\_OPERATION\_TIMEDOUT,操作超时。网络请求底层使用libcurl库,更多错误码可以查看相应文档。
26
27**参考链接**
28
29[http常见响应码](../reference/apis/js-apis-http.md#responsecode)和[Curl错误码](https://curl.se/libcurl/c/libcurl-errors.html)
30
31## http请求中response错误码返回6是什么意思
32
33适用于:OpenHarmony 3.2 Beta API 9
34
35**问题现象**
36
37发起http请求后,返回信息中response错误码为6。
38
39**解决措施**
40
41错误码6表示地址无法解析主机,可以尝试ping一下request中的URL,确认是否可以ping通。
42
43**参考链接**
44
45更多错误码参考[Response常用错误码](../reference/apis/js-apis-http.md#responsecode)或者[Curl错误码](https://curl.se/libcurl/c/libcurl-errors.html)
46
47## @ohos/axios三方件post请求queryParams参数场景下如何传参
48
49适用于:OpenHarmony 3.2 Beta API 9
50
51**问题现象**
52
53三方件@ohos/axios中发起post请求,以queryParams形式传递参数(将参数拼接在URL后)。
54
55**解决措施**
56
57-   方式一:使用axios.post接口只接收一个参数,Url.URLSearchParams需要转成字符串拼接在url后面。
58
59    ```
60    let params:Url.URLSearchParams = new Url.URLSearchParams()
61    params.append('ctl', 'sug')
62    params.append('query', 'wangjunkai')
63    params.append('cfrom', '1099a')
64    axios.post('http://10.100.195.234:3000/save?' + params.toString()).then(res => {
65      this.message = "request result: " + JSON.stringify(res.data);
66    }).catch(err => {
67      this.message = "request error: " + err.message;
68    })
69    ```
70
71-   方式二:使用axios接口只接收一个config对象,请求参数写在config对象的params中。
72
73    ```
74    axios({
75      url: 'http://10.100.195.234:3000/save',
76      method: 'post',
77      params: {
78      ctl: 'sug',
79      query: 'wangjunkai',
80      cfrom: '1099a'
81      }
82    }).then(res => {
83      this.message = "request result: " + JSON.stringify(res.data);
84    }).catch(err => {
85      this.message = "request error: " + err.message;
86    })
87    ```
88
89
90## connection.getNetCapabilities\(mNetHandle\)无法正常返回结果
91
92适用于:OpenHarmony 3.2 beta2 API 9
93
94**问题现象**
95
96在网络连接管理中,调用connection.getNetCapabilities\(\)函数时无法取到数据。
97
98**原因分析**
99
100this指向存在问题,用\(err,data\)=\>\{\}可以进入回调函数并且拿到返回结果数据,不能使用function\(err,data\),因为function声明的函数内存在自己的this,无法指向全局的this。
101
102**解决措施**
103
104getNetCapabilities的第二个参数把function\(err,data\)改成\(err,data\)。
105
106## http请求如何以json形式进行传输
107
108适用于:OpenHarmony 3.2 Beta API 9
109
110**解决措施**
111
112在HTTP协议消息头中,使用Content-Type来表示媒体类型信息。它被用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析html或仅仅展示一个文本等。
113
114设置该参数值为application/json,请求中的数据就会以json形式进行传输。
115
116```
117this.options = {
118  method:  http.RequestMethod.GET,
119  extraData: this.extraData,
120  header: { 'Content-Type': 'application/json' },
121  readTimeout: 50000,
122  connectTimeout: 50000
123}
124```
125
126## 调用camera拍摄的照片如何上传到服务器
127
128适用于:OpenHarmony 3.2 Beta5 API 9
129
130**问题现象**
131
132应用调用摄像头拍照后如何将图片上传到服务器?
133
134**解决措施**
135
136启动应用,获取权限后系统会访问远程服务器,将拍摄照片保存在本地,通过上传接口将文件从个人手机传送至远程服务器。
137
138**参考链接**
139
140[上传下载](../reference/apis/js-apis-request.md)
141
142## 手机网络正常,调用connection.hasDefaultNet\(\)接口失败
143
144适用于:OpenHarmony 3.2 Beta API 9
145
146**问题现象**
147
148手机可以上网,浏览器可以正常打开网页,但是hasDefaultNet这个方法调用失败,回调函数走到了失败的回调。
149
150**解决措施**
151
152connection.hasDefaultNet 接口需要注明需要权限ohos.permission.GET\_NETWORK\_INFO
153
154权限申请链接:[访问控制授权申请](../security/accesstoken-guidelines.md)
155
156## 如何理解connection.getDefaultNet返回对象netHandle中的netId
157
158适用于:OpenHarmony 3.2 Beta API 9
159
160**问题现象**
161
162netId的值如0、100分别代表什么含义?
163
164**解决措施**
165
166正常情况下,netHandle里的netId为0时表示没联网,大于等于100时为有网状态。
167
168## 如何使用http请求从网络上获取数据
169
170适用于:OpenHarmony 3.2 Beta API 9
171
172**解决措施**
173
174使用@ohos.net.http模块来发起http网络请求。
175
1761.  导入http模块,创建http请求对象。
1772.  设置请求地址URLl和参数,发起http请求。
1783.  获取请求结果response,并解析数据。
179
180**参考链接**
181
182详细信息请参考:[http数据请求](../connectivity/http-request.md)
183
184## 如何使用JS封装网络请求
185
186适用于:OpenHarmony 3.2 Beta API 9
187
188**解决措施**
189
190OpenHarmony网络请求支持JS语言开发方式,可直接使用。具体使用参考如下文档:[网络连接](../reference/apis/js-apis-http.md)
191
192## 基于JS开发智能手表应用,如何编写网络请求
193
194适用于:OpenHarmony 3.2 Beta API 9
195
196**解决措施**
197
198OpenHarmony网络请求支持JS语言开发方式,可直接使用。具体使用参考如下文档:[网络连接](../reference/apis/js-apis-http.md)
199
200## 应用增加权限"ohos.permission.NOTIFICATION\_CONTROLLER",编译后无法启动
201
202适用于:OpenHarmony 3.2 Beta API 9
203
204**问题现象**
205
206启动报错:error: install failed due to grant request permissions failed.
207
208**解决措施**
209
210权限"ohos.permission.NOTIFICATION\_CONTROLLER为系统级“system core”权限,第三方应用无法获取该权限。
211
212## WiFi模块中使用wifi.getIpInfo\(\).ipAddress报错
213
214适用于:OpenHarmony 3.2Beta API 9
215
216**问题现象**
217
218WiFi模块中使用wifi.getIpInfo\(\).ipAddress,报错Error: assertion \(wifiDevicePtr != nullptr\) failed: Wifi device instance is null
219
220**解决措施**
221
222权限不足。请先检查是否申请了相关的操作权限,权限相关信息可参考[权限管理](../security/accesstoken-overview.md)。
223